Ich bin eigentlich ein Verzeichnis für die Erstellung neuer Dateien (LOG-Dateien) überwachen diese Dateien werden von einigen Werkzeug und Werkzeug geschrieben Protokolleinträge nach irgendwann der generiert Erstellung der gleichen Datei, Während dieser Zeit wird die Datei leer sein.Wie kann ich warten, bis etwas in die Protokolldatei in meinem Perl-Skript geschrieben wird
und wie kann ich warten, bis etwas in das Protokoll geschrieben wird und Grund auf den Log-Einträgen basieren werde ich verschiedene Skript wird Aufruf !,
use strict;
use warnings;
use File::Monitor;
use File::Basename;
my $script1 = "~/Desktop/parser1.pl";
my $scrip2t = "~/Desktop/parser2.pl";
my $dir = "~/Desktop/tool/logs";
sub textfile_notifier {
my ($watch_name, $event, $change) = @_;
my @new_file_paths = $change->files_created; #The change object has a property called files_created,
#which contains the names of any new files
for my $path (@new_file_paths) {
my ($base, $fname, $ext) = fileparse($path, '.log'); # $ext is "" if the '.log' extension is
# not found, otherwise it's '.log'.
if ($ext eq '.log') {
print "$path was created\n";
if(-z $path){
# i need to wait until something is written to log
}else{
my @arrr = `head -30 $path`;
foreach(@arr){
if(/Tool1/){
system("/usr/bin/perl $script1 $path \&");
}elsif(/Tool1/){
system("/usr/bin/perl $script2 $path \&");
}
}
}
}
my $monitor = File::Monitor->new();
$monitor->watch({
name => $dir,
recurse => 1,
callback => {files_created => \&textfile_notifier}, #event => handler
});
$monitor->scan;
while(1){
$monitor->scan;
}
Grundsätzlich i von den einige der wichtigen Informationen am greppen Protokolle.
Haben Sie etwas über Polling ein Datei-Handles lesen? – red0ct
@ red0ct Nein! ein Link zu solchen Informationen wird hilfreich – Shantesh
Könnte [File :: Monitor] (http://search.cpan.org/~andya/File-Monitor-1.00/lib/File/Monitor.pm) eine sinnvolle Option sein? – eballes