Login
Newsletter
Werbung

Do, 19. März 2020, 15:00

Systemd Path Units zum Überwachen von Dateien und Verzeichnissen verwenden

Dieses Tutorial zeigt die Verwendung von Systemd Path Units. Sie ermöglichen es, im Falle von Änderungen an Dateien und Verzeichnissen eine Aktion auszulösen.

In einem vorangegangenen Artikel haben wir Systemd Timer Units vorgestellt, um Jobs auszuführen, und ihre Vor- und Nachteile gegenüber crond erörtert. In diesem Artikel widmen wir uns einer anderen Art von Unit-Dateien, den Path Units. Systemd Path Units ermöglichen es, Dateien und Verzeichnisse (Pfade) auf Ereignisse zu überwachen. Sobald ein Ereignis eintritt, kann Systemd ein Skript über eine Service Unit ausführen. Wir werden nun eine Beispielkonfiguration erzeugen.

Erstellen einer Systemd Path Unit

In diesem Beispiel erstellen wir eine Path Unit, um eine E-Mail-Benachrichtigung zu senden, wenn sich die Datei /etc/passwd auf unserem System ändert. Um eine funktionale Path Unit zu erstellen, benötigen wir drei Dateien.

  • Ein Skript, das den E-Mail-Alarm sendet
  • Die Service Unit, um das Skript zu starten, wenn ein Ereignis eintritt
  • Die Path Unit, um die Datei oder das Verzeichnis zu beobachten

Erstellen eines Skripts für E-Mail-Alarme

Wir erstellen nun ein einfaches Skript, das einen E-Mail-Alarm an unsere Administratoren sendet. Dazu legen wir die Datei /usr/local/bin/email-alert.sh mit dem folgenden Inhalt an.

#!/bin/bash
mail -S sendwait -s "ETC PASSWD CHANGED ON $(hostname)" myadmin@example.com < /etc/passwd

Anmerkung: Das setzt voraus, dass das System korrekt konfiguriert ist, um E-Mail zu senden, und dass mailx installiert ist.

Das Skript machen wir mit dem Kommando chmod ausführbar:

$ chmod +x email-alert.sh 

Erstellen der Service Unit-Datei, die das Skript ausführt

Die Service Unit ist verantwortlich für die Ausführung des Skripts, wenn die Path Unit Änderungen an der Datei beobachtet. In diesem Beispiel verwenden wir beim Erstellen der Service Unit der Einfachheit halber nur die grundlegendsten Deklarationen.

Wir legen eine Datei /etc/systemd/system/passwd-mon.service mit dem folgenden Inhalt an:

[Unit] 
Description="Run script to send email alert"

[Service]
ExecStart=/usr/local/bin/email-alert.sh

Es gibt zahlreiche weitere Optionen für eine Service Unit, die aber außerhalb des Gegenstands dieses Tutorials liegen.

Kommentare (Insgesamt: 30 || Alle anzeigen || Kommentieren )
Re[5]: incron (michse, So, 29. März 2020)
Re[14]: incron (jhohm, Sa, 21. März 2020)
Re[13]: incron (Ah je ..., Sa, 21. März 2020)
Re[12]: incron (Verfluchtnochmal_5987108, Fr, 20. März 2020)
Re[15]: incron (Verfluchtnochmal_5987108, Fr, 20. März 2020)
Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung