Eu tenho 5 hosts que eu preciso para ping se qualquer um para baixo eu deveria ser alertado através de um e-mail é possível ..?

1

Eu tenho 5 hosts que eu preciso para ping se qualquer um para baixo eu deveria ser alertado através de um e-mail é possível ..? e será verificado a cada 20 minutos. Alguém pode me ajudar .. Obrigado antecipadamente ...

Eu usei este script .. Preciso fazer alguma alteração para obter o resultado esperado?

Por favor, sugira qualquer opinião, por favor.

    #!/bin/bash

    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"
    fi
    done
    
por Sajinu 19.04.2016 / 09:09

1 resposta

0

Seu script parece ok. Você deve adicionar exit 0 / exit 1 , para falha / sucesso. Mais informações abaixo.

% bl0ck_qu0te%

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.

    
por Alex 19.04.2016 / 09:49