ping Aviso
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 13.240 ]
Homepage: https://fabio.automatizando.dev
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);
}
Script para Detectar rede Wireless
Importação de IPs do Whatsapp como Objeto do Zentyal
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









