Aslında yeni dosyaların (.log dosyaları) oluşturulması için bir dizinin izlenmesi Bu dosyalar, bir takım tarafından üretilir ve bazı zamanlar sonra araç girişlerini yazdı Aynı dosyanın oluşturulması, bu süre zarfında dosya boş olacaktır. Perl komut dosyamda bir şey yazılıncaya kadar nasıl bekleyebilirim?
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;
}
Temelde ben önemli bazı bilgileri grepping am
ve bir şey günlüğüne yazılır ve sebebi ben farklı senaryoyu çağırma olacak kayıt girişleri dayalı olan kadar nasıl ben bekleyebilir !, günlükleri.
bir dosya kolları yoklama hakkında bir şeyler okudun daha
mi? – red0ct
@ red0ct Hayır! Bu bilgilere bir bağlantı yararlı olacaktır – Shantesh
[File :: Monitor] (http://search.cpan.org/~andya/File-Monitor-1.00/lib/File/Monitor.pm) makul bir seçenek olabilir mi? – eballes