There's also another script which shows me the log:#!/usr/local/bin/perl use warnings; use strict; use GDBM_File; use Fcntl qw(O_CREAT O_RDWR); use Mail::Mailer; tie my %history, 'GDBM_File', "$ENV{HOME}/pinger/history", O_CREAT|O_R +DWR, 0600; my $ping=`ping -c 5 195.112.4.4|grep received`; $ping =~ /(\d+)%/; my $packet_loss = $1; chomp($packet_loss); if($packet_loss != 0) { $history{time()} = $packet_loss; } if(!defined($history{prev_state})) { $history{prev_state}=100; $history{most_recent} = time; } if($packet_loss == 100 && $history{prev_state} != 100) { # connection +gone down email( "Connection died at ".scalar(localtime) ); $history{prev_state} = $packet_loss; $history{most_recent} = time; } elsif($history{prev_state} == 100) { # previous was 10 +0% loss if($packet_loss != 100) { # ... and we're +back up email( "Connection came back up with $packet_loss% pa +cket\n". "loss at ".scalar(localtime).".\n\n". "It went down at ". scalar(localtime($history{most_recent})) ); $history{prev_state} = $packet_loss; $history{most_recent} = time; } } elsif($history{prev_state} == 0) { # previous was 0% + loss if($packet_loss != 0) { # ... now we hav +e lossage email("$packet_loss% packet loss on connection at ".sc +alar(local time)); $history{prev_state} = $packet_loss; $history{most_recent} = time; } } sub email { my $body=shift; my $mailer=new Mail::Mailer; $mailer->open({ To => 'david@cantrell.org.uk', Subject => 'LINEMONITOR report from '.`hostname` }); print $mailer $body; $mailer->close; }
#!/usr/local/bin/perl use warnings; use strict; use GDBM_File; use Fcntl qw(O_CREAT O_RDWR); use Data::Dumper; tie my %history, 'GDBM_File', "$ENV{HOME}/pinger/history", O_CREAT|O_R +DWR, 0600; print "Loss%\tTime\n"; foreach my $key (sort { $a <=> $b } grep { /^\d+$/ } keys %history) { print "$history{$key}\t".scalar(localtime($key))."\n"; }
In reply to Line monitor by DrHyde
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |