Aviso de queda de Internet via Sendxmpp

Neste artigo abordarei uma ferramenta que analisa se o DNS da Internet está pingando, avisa via Sendxmpp, ao usuário quando na rede
há perda de comunicação.

[ Hits: 18.688 ]

Por: Ricardo Rodrigues em 05/01/2012


Script para o análise da Internet



# touch /usr/bin/internet.sh
# vi /usr/bin/internet.sh
# chmod 777 /usr/bin/internet.sh


#!/bin/bash

DATA=`date +%d/%m/%Y`
HORA=`date +%H:%M:%S`

ping -c 10 8.8.8.8 | grep -in ", 10 received" > /var/log/internet-ok.txt # Verifica se o ip esta pingando em 10 ping
if [ -s /var/log/internet-ok.txt ]; # se o received for 10 e copiado para o arquivo internet-ok.txt
 then # se o arquivo internet-ok.txt contiver p texto 10 received ele executa os avisos, se não contiver ele não faz nada.
  echo "$DATA $HORA - O SERVIDOR VOLTOU A COMUNICAR COM A INTERNET" >> /var/log/internet-ok.log
  echo "AVISO!! A INTERNET JA ESTA FUNCIONANDO!" | sendxmpp -t ricardo@meuservidor welder@meuservidor
fi

Colocando no crontab

Vamos colocar o script para executar a cada 2 min:

# vi /etc/crontab

Adicione a linha:

0-59/2 * * * * root /usr/bin/internet.sh

Salve e execute a tarefa:

# crontab -l

Pronto! Este é um exemplo sobre como verificar se a Internet está funcionando de forma automática.

Página anterior    

Páginas do artigo
   1. Entendendo e instalando o Sendxmpp
   2. Script para o análise da Internet
Outros artigos deste autor

Desligar servidores quando o nobreak entra na bateria e envio de aviso por e-mail

Leitura recomendada

Shell Script nosso de cada dia - Episódio 3

Shell Script como serviço no Windows

getopts: criando scripts Bash com parâmetros e argumentos personalizáveis

Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB

Apresentando o Yad - "zenity melhorado"

  
Comentários
[1] Comentário enviado por removido em 05/01/2012 - 11:35h

Ótima ferramenta, irei testar.

Ótimo artigo.

Abraço.

[2] Comentário enviado por skullred em 02/04/2013 - 17:11h

Boa tarde amigo,

Estou fazendo implantando uma ferramenta de monitoramento, que ira rodar alguns scripts no crontab e fazer o envio de mensagem para determinado contato no meu servidor openfire.
Acontece que, ja tentei varias formas de fazer esse envio via crontab e nao tive sucesso.
Peguei esse seu script como exemplo, e coloquei em meu servidor, se eu executo o script no prompt, colocando /usr/bin/internet.sh, eu recebo a mensagem de queda de internet normal no meu chat (no caso eu alterei o 8.8.8.8 para um ip que nao iria responder).
Adicionei entao a linha citada no crontab, executando o mesmo arquivo, e não funciona.
Meu crontab esta:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0-59/1 * * * * root /usr/bin/internet.sh

Desde já, mto grato pela ajuda.

[3] Comentário enviado por ntserv em 22/05/2013 - 15:07h

OI, No meu caso eu fiz assim
no rc.local eu coloquei na linha /usr/bin/internet-ok.sh

ai dentro do script internet-ok.sh
coloquei no final da linha
sleep 160
/usr/bin/internet-ok.sh &

fazendo assim ele fica em loop sempre rodando
da uma pausa e depois fazer o loop


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts