Thread file in use
(23 answers)
Opened by mark05 at 2011-01-12 10:05
hallo,
ich wollte hier das thema nochal rauskramen um die neusten erkenntnisse darzulegen ;) das problem mit dem stat ist nicht perl sondern das darunterliegende filesystem , bzw dessen cache. jenachdem wie schnell es aenderungen commitet an das file gibt stat auch die werte richtig zurueck, ich habe getestet unter OpenBSD 4.7 und unter Debian Squeeze bei einem check interval von 1 sek hier bei ist die option filesync zu beachten die auf File::Sync basiert die ein sync des jeweiligen files ( unix sync ) ausfuehrt. Code: (dl
)
perl -e 'use Filewatch; my $fw=Filewatch->new({filesync=>'true',}); $fw->fw_add({file=>"/home/glaess/test",}); while (sleep 1) { my @rc = $fw->fw_check (); foreach my $r (@rc) { print "$r\n"; } }' bei einem check interval >= 2 sekunden habe ich keine fehler mehr gehabt somit . Code: (dl
)
perl -e 'use Filewatch; my $fw=Filewatch->new(); $fw->fw_add({file=>"/home/glaess/test",}); while (sleep 1) { my @rc = $fw->fw_check (); foreach my $r (@rc) { print "$r\n"; } }' Filewatch.pm http://www.glaessixs.de/~glaess/csdxmldev/Filewatc... alles test die ich gemacht habe verlaufen nun so wie ich es erwarte. a: es wird eine neue datei erkannt b: es wird erkannt ob eine datei geloescht wird c: es wird erkannt ob eine datei sich veraerndet hat und sich weiter veraendert ( wenn z.b. eine datei in ein verzeichniss kopiert wird welches in der ueberwachung ist ) mit perldoc Filewach.pm sollte man die notwendigen infos zur nutzung bekommen. und ja ich nutze aktuell 1 externes modul welches aber nur optional ist File::Sync. ich will noch das so umbauen das Filewatch startet , wenn das modul nicht installiert ist. holger |