Thread Wachsenden Dateien folgen: tail -f (33 answers)
Opened by sid burn at 2006-10-06 00:49

sid burn
 2006-10-08 20:02
#70533 #70533
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
So,
eine Lösung mit Linux::Inotify2 könnte folgendermaßen ausschauen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use warnings;
use strict;
use constant TRUE => 1;
use constant FALSE => 0;
use Linux::Inotify2;
use IO::Handle;

open my $fh, '<', $ARGV[0] or die "Cannot open file: $!\n";
$fh->blocking( FALSE );

my $inotify = new Linux::Inotify2 or die "Unable to creat Linux::Inotify2 object: $!\n";
$inotify->watch( $ARGV[0], IN_MODIFY, \&file_changed ) or die "watch creation failed";
sub file_changed {
while ( sysread $fh, my $buff, 50 ) {
syswrite STDOUT, $buff;
}
}

print <$fh>;
1 while $inotify->read;
close $fh;


Ich habe auf der Suche auch folgendes Modul von Michael Schilli gefunden:
File::Tail::FAM

Allerdings lies sich das bei mir nicht Compilieren. Hab das ganze jetzt aber auch nicht mehr weiter verfolgt.


Jetzt müsste ich nur noch hinbekommen, dass nicht die ganze Datei ausgegeben wird, sondern beim start nur die letzten 10. Jemand Ideen wie ich das am besten anstelle?\n\n

<!--EDIT|sid burn|1160324864-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Wachsenden Dateien folgen: tail -f