Login
Newsletter
Werbung

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

Systemd Path Units zum Überwachen von Dateien und Verzeichnissen verwenden

Erstellen einer Path Unit-Datei

Die letzte Datei, die benötigt wird, um die Konfiguration zu vervollständigen, ist die Path Unit-Datei selbst. Die Unit-Datei muss im selben Verzeichnis wie ihre zugehörige Service-Datei erstellt werden, in unserem Fall also /etc/systemd/system. Sie sollte auch denselben Namen haben, aber mit der Erweiterung .path.

Wir legen also die Datei /etc/systemd/system/passwd-mon.path mit dem folgenden Inhalt an.

[Unit]
Description="Monitor the /etc/passwd file for changes"

[Path]
PathModified=/etc/passwd
Unit=passwd-mon.service

[Install]
WantedBy=multi-user.target

Der Inhalt des Abschnitts [Path] ist der wesentliche Teil der Path Unit. PathModified weist die Unit an, die Datei auf Änderungen zu überwachen. Die Unit-Deklaration gibt an, welcher Service zu aktivieren ist, wenn eine Änderung entdeckt wird. WantedBy setzt im Wesentlichen eine Abhängigkeit, die dafür sorgt, dass unser Timer erst startet, wenn das System das multi-user target (Runlevel 3) erreicht hat.

Verfügbare Path-Optionen zum Überwachen von Dateien und Verzeichnissen

Wir haben PathModified für unsere Path Unit verwendet, aber es gibt noch mehr Optionen. Hier eine Übersicht über die weiteren verfügbaren Optionen.

  • PathExists - Aktiviert die Unit, wenn die Datei oder das Verzeichnis existieren.
  • PathExistsGlob - Wenn mindestens ein Datei oder ein Verzeichnis existieren, die auf das angegebene Muster passen.
  • PathChanged - Wenn die Datei oder das Verzeichnis sich ändern.
  • PathModified - Ähnlich wie PathChanged, aber nur, wenn sich Inhalte ändern.
  • DirectoryNotEmpty - Wenn das Verzeichnis mindestens eine Datei enthält.

Es gibt drei zusätzliche Optionen, die in der Sektion [Path] verwendet werden können.

  • Unit - Die zu aktivierende Unit, wenn ein Pfad-Event ausgelöst wird.
  • MakeDirectory - Erzeuge das Verzeichnis, das überwacht werden soll.
  • DirectoryMode - Benutze den angegebenen Modus beim Erstellen des Verzeichnisses (oktale Schreibweise).

Die Korrektheit der Unit-Dateien verifizieren

Man kann das Kommando systemd-analyze mit der Option verify verwenden, um die Korrektheit der Unit-Dateien zu prüfen. Falls Syntaxfehler vorhanden sind, wird es darauf hinweisen.

$ sudo systemd-analyze verify /etc/systemd/system/passwd-mon.*
 [savona@centos7 bin]$ 

Wenn Fehler vorhanden sind, werden sie in rot ausgegeben.

Start der Systemd Path Unit

Wir sind nun bereit, die Path Unit zu starten. Man startet sie mit systemctl, genau wie einen normalen Service.

$ sudo systemctl start passwd-mon.path

Jetzt prüfen wir den Status, um sicherzustellen, dass es ohne Probleme läuft.

$ sudo systemctl status passwd-mon.path
● passwd-mon.path - "Monitor the /etc/passwd file for changes"
   Loaded: loaded (/etc/systemd/system/passwd-mon.path; disabled; vendor preset: disabled)
   Active: active (waiting) since Sat 2020-01-25 13:30:20 EST; 6s ago

Jan 25 13:30:20 putor systemd[1]: Started "Monitor the /etc/passwd file for changes".

Aktivieren der Systemd Path Unit beim Booten

Die Path Unit zu aktivieren, so dass sie nach dem Booten automatisch startet, funktioniert genauso wie bei Services:

$ sudo systemctl enable passwd-mon.path

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