Bem ... O roteiro mais simples, eu escrevo:
/usr/bin/wget "www.example.com" --timeout 30 -O - 2>/dev/null | grep "Normal operation string" || echo "The site is down" | /usr/bin/mail -v -s "Site is down" [email protected]
Adicione ao cron como:
* * * * * /usr/bin/wget "www.example.com" --timeout 30 -O - 2>/dev/null | grep "Normal operation string" || echo "The site is down" | /usr/bin/mail -v -s "Site is down" [email protected]
Mas é simples demais dizer qual é o problema se ele existir.
UPD: Agora, este one-liner verifica uma string específica na página ("String de operação normal"), que deve aparecer apenas na operação normal.
UPD2: Uma maneira simples de enviar a página de erro no e-mail:
/usr/bin/wget "www.example.com" --timeout 30 -O - 2>/dev/null | grep "Normal operation string" || /usr/bin/wget "www.example.com" --timeout 30 -O - 2>/dev/null | /usr/bin/mail -v -s "Site is down" [email protected]
É menos que a página é re-solicitada em caso de falha do primeiro teste. Desta vez, a solicitação pode ser bem-sucedida e você não verá o erro. Naturalmente, é possível armazenar a saída e enviá-la como um anexo, mas isso tornará o script mais complexo.