shellscript de ping [RESOLVIDO]

1. shellscript de ping [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 05/10/2016 - 09:55h

Pessoal procurei no forum mais nao achei nada falando sobre o assunto que preciso.
Tenho um IP em especifico que preciso monitorar, mais queria que o shellscript quando o IP fica-se down que ele manda-se email.
Alguem pode me ajudar?!

achei alguns na net, mais a minha duvida é como ele vai enviar o email! qual o tramite etc...


  


2. MELHOR RESPOSTA

soul
11235813

(usa Arch Linux)

Enviado em 05/10/2016 - 10:33h

acho que da pra criar um condicional com o tutorial dessas dicas ;)
www.vivaolinux.com.br/artigo/Enviando-emails-pelo-terminal/
www.devin.com.br/mail-via-linha-de-comando/

edit. A galera ja fez (são muito rápidos) mas ta aqui outra opção rsrsrs
base: https://www.vivaolinux.com.br/script/Envio-de-email-via-console

EMAIL_FROM="email@email.com"
EMAIL_TO="email@email.com"

SERVIDOR_SMTP="smtp-mail.outlook.com:587"
SENHA=senha

ASSUNTOERRO="assunto"
MENSAGEMERRO="mensagem"

ping tanana -c 3

if [ $? = 0 ]; then
exit
elif [ $? = 1 ]; then
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTOERRO" -m "$MENSAGEMERRO" -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
fi


3. Re: shellscript de ping

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/10/2016 - 10:31h

error13 escreveu:

Pessoal procurei no forum mais nao achei nada falando sobre o assunto que preciso.
Tenho um IP em especifico que preciso monitorar, mais queria que o shellscript quando o IP fica-se down que ele manda-se email.
Alguem pode me ajudar?!

achei alguns na net, mais a minha duvida é como ele vai enviar o email! qual o tramite etc...


Bom dia error13.
Segue sugestão:
#!/bin/bash
IP="IP_ALVO"
EMAIL="EMAIL_DESTINO"
MSG="IP:$IP is DOWN"
if ! ping -c1 "$IP" > /dev/null;then
#ENVIA EMAIL
printf "%(Data: %x%nHora: %X)T\n$MSG\n"|mutt -s "AVISO" "$EMAIL"
fi

---------------------------------------------------------------------------------------
A configuração do ~/.muttrc, para o GMAIL, é:
set from = 'EMAIL'
set realname = 'NOME'
set imap_user = 'EMAIL'
set imap_pass = 'SENHA'
set folder = 'imaps://imap.gmail.com:993'
set spoolfile = '+INBOX'
set postponed='+[Gmail]/Drafts'
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates
set smtp_url = 'smtps://LOGIN@smtp.gmail.com:465/'
set smtp_pass = 'SENHA'
set move = no
set imap_keepalive = 900


OBS.: Ativar o acesso a aplicativos menos seguros na conta do GMAIL.

Se a resposta te ajudou, marque-a como A MELHOR . . . :)

Att.:
Marcelo Oliver






4. Re: shellscript de ping

thinomar
thinomar

(usa Linux Mint)

Enviado em 05/10/2016 - 10:54h

#!/bin/bash

# IP para pingar. Caso queira pegar como
# argumento do script,
# (exemplo: ./script.sh 192.168.1.1)
# substituir IP por $1
ip=IP

# Quantidade de vezes para pingar. Caso queira
# pegar como argumento do script junto com IP,
# (exemplo: ./script.sh 192.168.1.1 4)
# substituir QUANTIDADE por $2
qntd=QUANTIDADE

# Email de destino caso nao pingue
email=EMAIL

# Pinga IP x vezes (valor definido em $qntd)
# e joga TODA saida (stdout e stderr) no /dev/null
ping -c $qntd $ip &> /dev/null

# Caso ultimo exit status (o do ping, no caso)
# não seja OK, que equivale a 0, executa comandos
if [ $? -ne 0 ]
then
echo "CRITICAL!!! O IP $ip NAO ESTA PINGANDO!!!" | mail -s "A CASA CAIU" $email
fi


Apenas uma dica: se tiver interesse em monitorar outras coisas, aconselho dar uma lida sobre o Nagios.


5. Re: shellscript de ping [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 05/10/2016 - 11:11h

Tenho um sistema exatamente que fiz para isso, esta em teste ainda, se caso puder testar e me dize o que achou, segue o link...


https://goo.gl/Ay07oL




6. Re: shellscript de ping [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 05/10/2016 - 11:12h

A base do meu sistema começou aqui...

https://www.vivaolinux.com.br/artigo/Monitorar-servidores-e-enviar-alertas-por-e-mail-e-SMS/


7. Re: shellscript de ping

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 05/10/2016 - 12:12h

Williamm escreveu:

Tenho um sistema exatamente que fiz para isso, esta em teste ainda, se caso puder testar e me dize o que achou, segue o link...


https://goo.gl/Ay07oL



Tentei mais nao deu certo nao man!


Not Found

The requested URL /MonitorIP was not found on this server.

Apache/2.4.7 (Ubuntu) Server at 172.16.x.x Port 80




8. Re: shellscript de ping [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 05/10/2016 - 12:12h

thinomar escreveu:

Apenas uma dica: se tiver interesse em monitorar outras coisas, aconselho dar uma lida sobre o Nagios.


eu sei man... mai sé um ip só!



9. Re: shellscript de ping

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 05/10/2016 - 13:00h

centralkidede escreveu:

acho que da pra criar um condicional com o tutorial dessas dicas ;)
www.vivaolinux.com.br/artigo/Enviando-emails-pelo-terminal/
www.devin.com.br/mail-via-linha-de-comando/

edit. A galera ja fez (são muito rápidos) mas ta aqui outra opção rsrsrs
base: https://www.vivaolinux.com.br/script/Envio-de-email-via-console

to testando esse codigo! agora vamos ver se chega! se chegar acho que atende!

sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTOERRO" -m "$MENSAGEMERRO" -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA

percebi uma coisa, nao precisa especificar porta?!





10. Re: shellscript de ping [RESOLVIDO]

soul
11235813

(usa Arch Linux)

Enviado em 05/10/2016 - 13:51h

error13 escreveu:

centralkidede escreveu:

acho que da pra criar um condicional com o tutorial dessas dicas ;)
www.vivaolinux.com.br/artigo/Enviando-emails-pelo-terminal/
www.devin.com.br/mail-via-linha-de-comando/

edit. A galera ja fez (são muito rápidos) mas ta aqui outra opção rsrsrs
base: https://www.vivaolinux.com.br/script/Envio-de-email-via-console

to testando esse codigo! agora vamos ver se chega! se chegar acho que atende!

sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTOERRO" -m "$MENSAGEMERRO" -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA

percebi uma coisa, nao precisa especificar porta?!



só alterar a variável com o smtp do servidor que tu usa, gmail, outlook etc e colocar a porta depois de um ":"
SERVIDOR_SMTP="smtp-mail.outlook.com:587"

abraço


11. Re: shellscript de ping [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 05/10/2016 - 14:42h

centralkidede escreveu:

acho que da pra criar um condicional com o tutorial dessas dicas ;)


EMAIL_FROM="email@email.com"
EMAIL_TO="email@email.com"

SERVIDOR_SMTP="smtp-mail.outlook.com:587"
SENHA=senha

ASSUNTOERRO="assunto"
MENSAGEMERRO="mensagem"

ping tanana -c 3

if [ $? = 0 ]; then
exit
elif [ $? = 1 ]; then
sendEmail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTOERRO" -m "$MENSAGEMERRO" -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA
fi


man funcionou mais como faco que isso fique no lupping para caso faca somente qdo para de pingar!?




12. Re: shellscript de ping

thinomar
thinomar

(usa Linux Mint)

Enviado em 05/10/2016 - 15:00h

De duas, uma: ou você faz um laço infinito, com um sleep equivalente ao intervalo entre as checagens, ou você coloca no crontab. Eu optaria pelo crontab, mas caso queira o laço, eis um exemplo (com intervalo de 10 minutos entre as checagens):
while true
do
CODIGO
...
sleep 10m
done




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts