ping Aviso

Publicado por Fábio Berbert de Paula 13/11/2002

[ Hits: 13.124 ]

Homepage: https://fabio.automatizando.dev

Download pingAviso.zip




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.

  



Esconder código-fonte

#!/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);
}

Scripts recomendados

UDP flood em Perl!

Carregando automaticamente wireless via ndiswrapper II

Importação de IPs do Whatsapp como Objeto do Zentyal

Web Fuzzer em Perl

Slowloris.pl (não foi feito por mim é apenas um compartilhamento.)


  

Comentários
[1] Comentário enviado por paulocelsojr em 19/12/2005 - 15:45h

Quando eu rodo esse script da a seguinte mensagem de erro:
Can't locate MIME/Entity.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./teste.sh line 18.
BEGIN failed--compilation aborted at ./teste.sh line 18.
poderia me ajudar a solucionar esse problema?

[2] Comentário enviado por paulopmt1 em 22/04/2007 - 23:56h

Amigo, gostei da idéia do script. Porém comigo deu o mesmo erro que o do paulocelsojr.:
Can't locate MIME/Entity.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./ping_aviso line 4.
BEGIN failed--compilation aborted at ./ping_aviso line 4.

Sabe me dizer qual é o problema?
qualquer ajuda agradeço muito

[3] Comentário enviado por andrei_scaratti em 18/05/2007 - 13:23h

muito legal amigo

[4] Comentário enviado por dcampos em 16/06/2007 - 16:36h

O problema, paulopmt1 e paulocelsojr, é que o módulo MIME::Entity não estava instalado no computador de vocês. Podem baixá-lo de http://search.cpan.org/~dskoll/MIME-tools-5.420/lib/MIME/Entity.pm.

Abraço.

[5] Comentário enviado por rafael.mendes em 20/03/2008 - 09:22h

ou (debian) aptitude install entity

[6] Comentário enviado por dvinciguerra em 04/03/2010 - 14:21h

Podem baixar executando o comando...

cpan -i MIME::Entity

Ua,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts