ping Aviso
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 12.923 ]
Homepage: https://www.instagram.com/alexabolada/
Script que fica enviando pacotes através do comando ping para
uma determinada máquina e avisa o administrador de sistemas
por email quando a máquina deixa de responder. Bom para detectar
quedas de rede.
#!/usr/bin/perl # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # pingAviso.pl # # Script que fica enviando pacotes através do comando ping para # uma determinada máquina e avisa o administrador de sistemas # por email quando a máquina deixa de responder. Bom para detectar # quedas de rede. # # Programado por Fábio Berbert de Paula <fabio@vivaolinux.com.br> # Na web em: www.vivaolinux.com.br # # Rio de Janeiro, 25 de Julho de 2002 # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ use strict; use MIME::Entity; # módulo para envio de email # definir variáveis globais -- my $ip = '200.215.128.83'; # endereço IP do host target my $ping = '/bin/ping'; my $time = 60; # executar verificação a cada 60 segundos my $tout = 3600; # aguardar 5 minutos após a queda da máquina, só para # dar tempo de a mesma voltar em caso de reinicialização :) # mude aqui o seus endereços de email my $sysfrom = 'Fábio Berbert de Paula <fabio@vivaolinux.com.br>'; my $systo = 'suporte@vivaolinux.com.br'; my ($out,$corpo); # looping principal while (1) { $out = `$ping -c 3 $ip`; # execute o ping if ( $out !~ /bytes from/i ) { # se não recebemos uma saída positiva (bytes from), vamos avisar # o sysadmin print "$ip fora do ar, avisando por email...\n"; avisar(); } sleep(1); } sub avisar { # capturar a data e hora de agora my ($dia,$mes,$ano,$hora,$min) = (localtime(time))[3,4,5,2,1]; $ano += 1900; $mes++; $mes = sprintf("%02d",$mes); $dia = sprintf("%02d",$dia); $hora = sprintf("%02d",$hora); $min = sprintf("%02d",$min); # definir corpo da mensagem $corpo .= ' Atenção, A máquina ('. $ip . ') não está respondendo ao ping, tudo indica que a mesma está fora da rede. Favor efetuar uma verificação manual, este é um teste automático. '; $corpo .= "\nRio de Janeiro, $dia do $mes de $ano - $hora:$min hs"; # enviar email com o corpo atual my $top = build MIME::Entity From => $sysfrom, To => $systo,, Subject => "$ip fora da rede", Data => $corpo; open(MAIL,"| /usr/lib/sendmail -t"); $top->print(\*MAIL); close(MAIL); sleep($tout); }
Enviando notificações do Nagios para o MSN
Carregando automaticamente wireless via ndiswrapper II
Importação de IPs do Whatsapp como Objeto do Zentyal
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
iso de sistema 32 bit em atividade (3)
Lançado Ubuntu 24.04 Final (0)
ASRock H310CM-HG4 vs Linux (11)