Seu script parece ok. Você deve adicionar exit 0
/ exit 1
, para falha / sucesso. Mais informações abaixo.
Se o script deve ser executado sempre, a cada 20 minutos em segundo plano, você deve usar cron
, que já está disponível em seu sistema.
Assim toda a saída do seu script será enviada para o root, se o script retornar 1 (FAILURE). No entanto, por padrão, o root-mail apenas vai para alguma pasta. Você precisa instalar o & amp; configure um mail-daemon para encaminhar o root-mail para o seu endereço de email pessoal. Como isso pode ser feito é, e. explicado aqui: link
Ou aqui: Maneira fácil de encaminhar todos os emails
Editar:
Ok, aqui estão alguns comandos para fazer as coisas.
1.) Primeiro, você precisa de uma versão do seu script que saia 1 em falha. Algo assim deveria fazer:
#!/bin/bash
ALL_HOSTS_AVAILABLE=true
for i in $( cat $HOME/iplist.txt )
do
ping -q -c2 $i > /dev/null
if [ $? -eq 0 ]
then
echo $i "Pingable"
else
echo $i "Not Pingable"
ALL_HOSTS_AVAILABLE=false
fi
done
if [ "$ALL_HOSTS_AVAILABLE" = false ] ; then
echo 'Some hosts were not available!'
exit 1
fi
exit 0
2.) Agora, certifique-se de ter permissões sudo definidas para seu usuário (você não quer fazer as coisas diretamente como root). Caso contrário, siga este manual: Como eu adiciono um usuário ao grupo "sudo"? ? Talvez você primeiro precise instalar o pacote sudo
su root
apt-get install sudo
3.) Copie seu script para uma pasta visível para todos os usuários e passe-o para a raiz. Por exemplo:
sudo cp myScript /usr/local/bin
sudo chown root /usr/local/bin/myScript
sudo chgrp root /usr/local/bin/myScript
4.) Configurar um cronjob que executa o seu script
# write out current crontab
crontab -l > mycron
# echo new cron into cron file */20 means each 20 minutes
# Check https://de.wikipedia.org/wiki/Cron for format
echo "*/20 * * * * /usr/local/bin/myScript" >> mycron
# install new cron file
sudo crontab mycron
rm mycron
5.) Instale algum MTA, para que você obtenha a notificação por e-mail funcionando .. parece que o mais simples é nullmailer
sudo apt-get install nullmailer
.. Eu não sei detalhes, basta procurar no Google ajuda para fazer o nullmailer
setup no caminho certo.