ping Aviso
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 13.023 ]
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); }
SiteCheckSMS - Monitore seu website e receba alertas por SMS
Slowloris.pl (não foi feito por mim é apenas um compartilhamento.)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta