Inotify: Dateien überwachen

Veränderungen im Dateisystem mit inotify beobachten.

Sobald eine bestimmte Datei verändert wird möchte ich ein Archiv erstellen oder die Datei auch einen Server hochladen, oder auf meiner NAS eine LED anschalten. Bei der Suche nach einem passenden Werkzeug blieb ich sehr lange bei einer Endlosschleife die regelmäßig die Datei oder das fragliche Verzeichnis auf die erwartete Änderung abfragte.

Inotify-Events
KürzelFormat
ACCESSZugriff auf die Datei
ATTRIBMetadaten geändert
CLOSE_WRITEzum Schreiben geöffnete Datei geschlossen, sie muss nicht geändert worden sein
CLOSE_NOWRITEEine Datei wurde geschlossen nachdem sie schreibgeschützt geöffnet wurde
CREATENeue Datei angelegt
DELETEDatei gelöscht
DELETESELFÜberwachtes Verzeiuchnis gelöscht
MODIFYDatei modifiziert
MODIFYSELFÜberwachtes Verzeichnis modifiziert
MOVEDFROMDatei aus dem überwachten Verzeichnis verschoben
MOVEDTODatei in das überwachte Verzeichnis verschoben
OPENDatei geöffnet

Zur Überwachung meines WordPress Verzeichnises auf neue Dateien kann ich folgende Befehlszeile nutzen:

Mir werden dann vor allem viele Dateien wp-content/temp-write-test-1492771373, mit abweichenden Nummern am ende, angezeigt, jedoch auch die ganzent Updates und anderen Schreibvorgänge.

Um herauszufinden welche Dateien „angefasst“ werden reicht eine kleine änderung auf:

Ein sehr nützliches Werkzeug, auch für die Fehleranalyse. 😉

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate

Dateisystem „nachträglich“ in RAID1 wandeln

Ich beobachtete im Februar 2015, bei einem erfolglosen Bewerbungsgespräch, wie auf einem Arbeitsplatz-Computer das Dateisystem, welches ohne Raid eingerichtet wurde, das System auf ein MDADM RAID1 verschoben wurde.
Ich fand die Idee einen Arbeitsplatz Computer nachträglich, scheinbar direkt nach der Neuinstallation auf ein RAID zu verscheiben überflüssig und umständlich. Das zuvor angefertigte Backup hätte auch zur Neuinstallation und neuerlichen Einrichtung des Computers mit Raid genutzt werden könnte.
Als Finderübung fand ich die Idee jedoch interessant. Bei einem Server kann auf diese Weise die offline Zeit reduziert werden.

Während dem Bewerbungsgespräch hörte ich nur ein paar Fetzen, ein Mitarbeiter fragte tatsächlich den Leiter der Abteilung wie MDADM und die Grub Installation funktioniert.

Die Umstellung einer Partition auf ein MDADM Raid ist tatsächlich nicht so kompliziert wie erwartet, hier meine Version.

1.) Partitionierung klonen

Auf der ersten Festplatte befinden Sich 3 Partitionen, Boot, Swap und eine Datenpartition, welche im ersten Schritt auf die Zweite Festplatte geklont werden

„sfdisk -d“ gibt die aktuelle Partitionstabelle der Festplatte /dev/sda aus und „sfdisk“, ohne Parameter, nimmt diesen export und schreibt diese auf die Festplatte /dev/sdb.
Mit „sfdisk -l“ kann das Ergebnis dieser Neupartitionierung von /dev/sdb überprüft werden.

Im Anschluss wechseln wir die Partitions-ID von den Partitionen /dev/sdb1 und /dev/sdb3 auf fd (Linux raid autodetect).
Mit fdisk geht dies über das Commando t zum ändern der Partitions-ID gefolgt von der Nummer der gewünschten Partition, zuerst 1 für die erste Partition und 3 bei der dritten Partition, und in Folge der Eingabe der Zeichenfolge fd

2.) Raid initialisieren

Anschließend erstellen wir das RAID1 Arrays mit den neuen Partitionen mit einer „fehlenden zweiter Festplatte“.
Hierbei ist missing der Platzhalter für die aktuell fehlenden, da „aktiven“ Partitionen, „-l 1“ steht für RAID1 und „-n 2“ das das RAID 1 aus zwei Disks bestehen wird.
(Bei einer minimal-Debian Installation muss zuvor via „apt-get install mdadm„, MDADM installiert werden.)

3.) Daten übertragen

Nach dem anlegen des neuen RAID1 Arrays muss zuerst ein Dateisystem angelegt werden und die swap Partition erzeugt werden.:

Nach dem anlegen des Dateisystems können die Datenträger eingehängt werden…

…und im Anschluss die Daten auf den neuen Datenträger kopiert werden.:

4.) RAID ergänzen

Wie zuvor im ersten Schritt können die Partitions-IDs angepasst werden, nur diesmal für die Festplatte /dev/sda:

Im Anschluss in der /etc/fstab für / den Eintrag /dev/md0 und für /boot den Eintrag /dev/md1 hinerlegen und den Computer neu starten.

Sobald der Grub2 Bootloader erscheint mit der Taste e den Booteintrag bearbeiten und den Eintrag „linux /vmlinux-3.3 root=UUID=…“ ändern in „linux /vmlinux-3.3 root=/dev/md1“ und mit F10 den Bootvorgang starten.

Jetzt kann das RAID mit den folgenden beiden Befehlen verfolständigt werden:

5.) Grub für das RAID Installieren

Jetzt kann abschließend der Grub Bootloader für beide Festplatten konfiguriert und auf diese Installiert werden.

nur noch die Zeile „GRUB_TERMINAL=console“ in der Datei /etc/default/grub auskommentieren und mit den folgenden Befehlen eine neue Grub Konfiguration schreiben.

Jetzt kann der Server bei Reboot auch ohne Festplatte /dev/sda oder /dev/sdb starten.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 17g7tgR4KYKSqS1f8LUCpLEeum4PAcnGbo
Donate