http://www.perlmonks.org?node_id=538737

Scrat has asked for the wisdom of the Perl Monks concerning the following question:

Good day,

I run a small program that performs an ICMP ping every 5 seconds or so from server A over a remote subnet to Server B. The result of each ping is appended to a log file on Server A.

My problem is that the log file would gather data for about 2 to 3 days and then terminate itself. Is there a way I can change it so that it continues to run until I terminate it manually? Below is some code i use:

use strict; use Time::Local; use Net::Ping; my ($time); my @hostnames = ("10.0.0.1"); my $p = Net::Ping->new("icmp"); my $hostname; print "\nWriting data to ping.log\n"; print "Press CTRL-C to exit\n"; while(1) { foreach my $hostname (@hostnames) { $time = localtime; open (LogFile, ">>ping.log") || die "Sorry, cannot open logfil +e\n"; print (LogFile "$time - "); print (LogFile "$hostname is "); print (LogFile "NOT ") unless $p->ping($hostname, 2); print (LogFile "reachable.\n"); close Logfile; sleep(5); } }