. .

Python: Script zur Überwachung von Dateisystemereignissen mit pyinotify


Inhalt

Beschreibung

Mit dem Python-Modul Pyinotify können alle Änderungen auf dem Dateisystem verfolgt werden. Pyinotify bezieht die Informationen direkt vom Subsystem „inotify“ (inode notify) des Kernels, um bestmögliche Performance zu gewährleisten.

Das Script „observeDirs“ überwacht rekursiv alle Verzeichnisse, die in der Liste „dirs_recursive_to_observe“ in „oD_configuration.py“ vorkommen.

dirs_recursive_to_observe = [
    '/etc', '/root', '/usr'
]

dirs_recursive_to_ignore = [
    '/usr/portage',
]

regexs_to_ignore = [
    '^/root/.viminfo*',
]

 

Mit pyinotify werden in den konfigurierten Verzeichnissen folgende Veränderungen an Dateien oder Unterverzeichnissen behandelt: Neu-Erstellung, Bearbeitungen von Dateien, Metadatenänderungen (z.B. Berechtigungen), Löschungen und Verschiebungen.
Über jede diese Veränderungen wird man per eMail informiert.
Hier ein kleines Beispiel von eMails, die durch Aktualisierung des Systems versendet wurden:
 
observeDirs - mail overview

 
Im Dictionary „maildata“ (ebenfalls in „oD_configuration.py“) können Einstellungen getroffen werden:

maildata = {
    'sendmail': True,
    'fetch_time': 60, 
    'to': 'to@mail',
    'from': 'from@mail',
    'subject': 'observeDirs :: ALERT',
    'cmd': '/usr/sbin/sendmail -t',
}

Der Wert des Keys „fetch_time“ bestimmt die Zeit in Sekunden, die nach einer ersten Änderung gewartet wird und dabei neue Änderungen gesammelt werden.
Das bedeutet, dass nach der ersten Änderung sofort eine eMail verschickt wird, damit man informiert wird, dass sich gerade etwas getan hat.
Dann werden in diesem Fall 60 Sekunden gewartet, bis eine zweite eMail versendet wird, falls weitere Änderungen auf dem Dateisystem geloggt wurden. Ist das der Fall, werden alle Änderungen in dieser zweiten eMail verschickt.
Zudem werden alle Vorkommnisse sofort nach „/var/log/observeDirs.log“ gespeichert.

Eine eMail mit einer neuen Meldung könnte dann so aussehen:
 
observeDirs - first mail

Die zweite bzw. eventuell nachfolgenden eMails sehen so aus:
 
observeDirs - second mail



Quellcode

Den Quellcode zu observeDirs habe ich hier abgelegt:
https://gitorious.org/observedirs.

Mit git kann der Quellcode ohne Schlüsselpaar so geladen werden:
    git clone https://git.gitorious.org/observedirs/observedirs.git



Projektdaten

Curl-Fehler: OpenSSL SSL_connect: Connection reset by peer in connection to gitorious.org:443
Daten aus https://gitorious.org/observedirs.xml

Eingestellt am: 12.06.2021 um 21:42:21
Lizenz:
Owner:
Repositories:


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>