#!/app/gmd/bin/perl $NumberFiles = 60000 ; $rollNumberLines = 100000 ; $doLogFiles = 1 ; $logFileDirectory = "/app/gmd/data/rv_check" ; $bin_dir = "/app/gmd/tib/ref/bin/" ; $sublist = "\"RSF.PAGE.TIME.NaE\" \"RSF.REC.EUR=.NaE\"" ; $out = "rvcheck.out" ; $domain = `/usr/bin/domainname` ; $am_network_params = "-network \"172.21.2.0\;225.18.2.100\;225.18.1.100\"" ; $eu_network_params = "-network \"172.28.2.0\;225.18.2.100\;225.18.1.100\"" ; if ( $domain =~m/^mdn_us.*/) { $rvsub_cmd = "$bin_dir/rvlisten -service 9100 $am_network_params $sublist" ; print "spawning [$rvsub_cmd]\n" ; } elsif ( $domain =~m/^mdn_eu.*/) { $rvsub_cmd = "$bin_dir/rvlisten -service 9100 $eu_network_params $sublist" ; print "spawning [$rvsub_cmd]\n" ; } rollLog($out); open(FH,"$rvsub_cmd|")||die "$!"; select STDOUT; $|=1; while () { if ($_=~m/^Received: subject=RSF.PAGE.TIME.NaE.*/) { my $time = &getTime; my $o = sprintf "%-20s-%-100s\n", $time, $_ ; logPrint($out, $o) ; } } ##################################################################### sub logPrint { ##################################################################### my $file = shift; $doLogFiles && print $file @_; if (++$logSize{$file} >= $rollNumberLines) { rollLog($file); } } ##################################################################### sub rollLog { ##################################################################### my $file = shift; my $logDir="$logFileDirectory"; if (! -d "$logDir") {mkdir($logDir, 0755);} my $f = $logDir . "/" . $file; my $n; for ($n=$rollNumberFiles-1; $n>1; $n--) { my $from = $f . "." . ($n-1); my $to = $f . "." . $n ; rename($from, $to) if -e $from; } rename($f, $f . "." . 1) if -e $f; # Open does an implicit close if the file handle was already open. if (! open ($file, ">>$f")) { print STDOUT "ERROR: Can't open file $f: $!\n"; } select $file; $|=1; $logSize{$file}=0; } ##################################################################### sub getTime { ##################################################################### my ($sec,$min,$hr)=localtime(); return sprintf("%.2d:%.2d:%.2d",$hr,$min,$sec); } ~