inotify / filesystem überwachen
inotify / filesystem überwachen
hat jemand von euch erfahrung mit programmen wie
http://sourceforge.net/projects/iwatch
oder kennt vergleichbare tools?
http://sourceforge.net/projects/iwatch
oder kennt vergleichbare tools?
im grunde möchte ich bestimmte verzeichnisse überwachen und über änderungen benachrichtigt werden. hatte mir mal afick angeschaut, inotify zu nutzen scheint mir aber die bessere lösung zu sein.
(@nepos: deinen thread über inotify/system crash habe ich gelesen, hast du antwort von der lkml bekommen?)
das einige frontend, das ich bisher gefunden habe war iwatch. da ich (wenn es gut funktioniert) das gerne auch im grossen stil einsetzten möchte, fand ich die simple xml konfiguration prima.
(@nepos: deinen thread über inotify/system crash habe ich gelesen, hast du antwort von der lkml bekommen?)
das einige frontend, das ich bisher gefunden habe war iwatch. da ich (wenn es gut funktioniert) das gerne auch im grossen stil einsetzten möchte, fand ich die simple xml konfiguration prima.
Ach, das alte Problem 
Ne, an die hab ich mich gar nicht mehr gewandt. Es hat sich herausgestellt, dass eine unserer vier Server-Platten einen Firmware-Bug hatte. Dieser hat sich darin geäußert, dass unter hoher I/O-Last Schreibzugriffe nicht vollständig abgeschlossen wurden und so das Filesystem langsam aber sicher zerstört wurde.
afick ist halt eigentlich ein Integrity-Checker. Den kannst du höchstens als Cron-Job laufen lassen und kriegst halt nur periodisch mit, ob sich was getan hat. Mit inotify kannst du, wenn ichs noch richtig in Erinnerung habe, in Echtzeit überwachen und daraus z.B. Mails generieren oder ähnliches.

Ne, an die hab ich mich gar nicht mehr gewandt. Es hat sich herausgestellt, dass eine unserer vier Server-Platten einen Firmware-Bug hatte. Dieser hat sich darin geäußert, dass unter hoher I/O-Last Schreibzugriffe nicht vollständig abgeschlossen wurden und so das Filesystem langsam aber sicher zerstört wurde.
afick ist halt eigentlich ein Integrity-Checker. Den kannst du höchstens als Cron-Job laufen lassen und kriegst halt nur periodisch mit, ob sich was getan hat. Mit inotify kannst du, wenn ichs noch richtig in Erinnerung habe, in Echtzeit überwachen und daraus z.B. Mails generieren oder ähnliches.
ja genau das war mein plan ... nur scheint es (noch) fast keine tools/frontends zu geben. iwatch hab ich grad aufgegeben, da es dutzende von paketen aus etch wollte. (zielsystem war ein sarge server)Mit inotify kannst du, wenn ichs noch richtig in Erinnerung habe, in Echtzeit überwachen und daraus z.B. Mails generieren oder ähnliches.
- Sid Burn
- Beiträge: 47
- Registriert: 16.11.2006 15:18:02
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /universe/earth/europe/germany/nrw/essen
-
Kontaktdaten:
Ich hatte mal zu Testzwecken ein Perl Skript geschrieben das inotify nutzt. Im großen und ganzen hatte ich ein abgespecktes tail geschrieben das inotify nutzt um das verändern der Datei zu erkennen, und wenn die Datei verändert wurde den Rest ausgibt.
Das Systemtool "tail" arbeitet unter Debian nämlich nur so das ein "sleep 1" aufgerufen und die Datei ständig gepoolt wird.
Das Interface an sich ist auch sehr simpel gewesen. Allerdings funktioniert das ganze unter Sarge nicht, wegen Kernel < 2.6.13. Ich habe noch nicht nach gesucht, allerdings gab es davor ja glaube ich SGI::FAM womit sich soetwas glaube ich auch realisieren lässt.
Hier der Sourcecode zu dem kleinen Tool:
Weitere Infos gibt es auch unter Linux::Inotify2
Das Systemtool "tail" arbeitet unter Debian nämlich nur so das ein "sleep 1" aufgerufen und die Datei ständig gepoolt wird.
Das Interface an sich ist auch sehr simpel gewesen. Allerdings funktioniert das ganze unter Sarge nicht, wegen Kernel < 2.6.13. Ich habe noch nicht nach gesucht, allerdings gab es davor ja glaube ich SGI::FAM womit sich soetwas glaube ich auch realisieren lässt.
Hier der Sourcecode zu dem kleinen Tool:
Code: Alles auswählen
#!/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;