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