in reply to Re^4: trying to implement file tail with regular expression
in thread trying to implement file tail with regular expression
Try this. Note I have used a module to read the ini file.
poj#!perl use strict; use File::Tail; use Config::Tiny; #die "Usage: $0 <app_root_dir>" unless @ARGV == 1; my $app_root_dir = shift; =head1 content of param.ini DIAGFILE = diagfile HOSTNAME1 = hostname1 HOSTNAME2 = hostname2 =cut my $Config = Config::Tiny->read( "$app_root_dir/config/param.ini" ) or die "$!"; my $ref = tie *DIAG,"File::Tail",( name => $Config->{'_'}{'DIAGFILE'}, interval => 1, # wait at start maxinterval => 10, # change to suit adjustafter => 10 # change to suit ); my $restart; while (my $line = <DIAG>) { if ($line =~ /is higher than 5 seconds/) { # restart only if more than 60 seconds since last restart if (time() - $restart > 60) { run_command('stop',1); run_command('stop',2); run_command('start',1); run_command('start',2); $restart = time(); } } } # execute start/stop sub run_command { my ($action,$n) = @_; my $host = $Config->{_}{'HOSTNAME'.$n}; my $cmd = join ' ','sc',"\\\\$host",$action,'AudioSrv', ">$app_root_dir\\logs\\${action}ServiceOutput${n}.txt"; #system($cmd); print "$cmd\n"; # replace with system after testing }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: trying to implement file tail with regular expression
by mkhayat (Initiate) on Feb 17, 2016 at 05:29 UTC | |
by poj (Abbot) on Feb 17, 2016 at 07:40 UTC | |
by Anonymous Monk on Feb 17, 2016 at 08:11 UTC | |
by poj (Abbot) on Feb 17, 2016 at 08:14 UTC | |
by mkhayat (Initiate) on Feb 17, 2016 at 08:27 UTC | |
|