This little perl program allows you to check the availability of an IP address via a cron command that outputs the result in a text file.
#!/usr/bin/perl
# This script pings IP addresses
#
# In a live application, read host list
# from a config file
@hosts = ("192.168.1.1","192.168.1.19");
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon += 1;
$min = sprintf("%02d", $min);
$sec = sprintf("%02d", $sec);
$mon = sprintf("%02d", $mon);
$mday = sprintf("%02d", $mday);
$year = sprintf("%02d", $year % 100);
@live = ();
foreach $h (@hosts) {
$r = `ping -c2 $h`;
if ($r =~ /2 re/) {
push @live,$h;
}
}
$alive = "@live";
print ("You have $alive on $mday $mon $year @ $hour:$min:$sec\n");
This script can then be used in a cron like:
*/5 * * * * /path/to/file/pingtest.pl >> /some/path/pingtest.txt
This command will write the result on a new line in the file called pingtest.txt every 5 minutes. Which will look like that:
You have 192.168.1.1 192.168.1.19 on 06 01 13 @ 20:05:01 You have 192.168.1.1 192.168.1.19 on 06 01 13 @ 20:10:01 You have 192.168.1.1 192.168.1.19 on 06 01 13 @ 20:15:01