So zeigen Sie Systemctl-Protokolle an

So Zeigen Sie Systemctl Protokolle An



Das Systemd ist eines der am weitesten verbreiteten Init-Systeme unter Linux. Der Hauptvorteil von systemd ist seine Fähigkeit, die Systemprotokolle zu verwalten. Es sammelt alle Kernel-Nachrichten und Benutzerprozesse in einem Protokoll namens Tagebuch . Der aufgezeichnet ist der Daemon, der die Protokolle in einer Binärdatei erfasst und verwaltet. Der Hauptvorteil dieses Daemons besteht darin, dass er Daten in strukturierter und indizierter Form speichert und so den Zugriff und die Analyse erleichtert Journalctl Dienstprogramm.

In diesem Handbuch beschreibe ich, wie man Systemd-Protokolle unter Linux mit verschiedenen Befehlszeilendienstprogrammen anzeigt.

Notiz: Die in diesem Handbuch erwähnten Befehle werden unter Ubuntu ausgeführt. Sie funktionieren fehlerfrei auf allen Linux-Distributionen, die mit dem Systemd-Init-System ausgestattet sind.







Methoden zum Anzeigen von systemctl-Protokollen

Es gibt zwei Ansätze zum Anzeigen von Systemd-Protokollen unter Linux:



systemctl liefert die neuesten dienstspezifischen Protokolle, während journalistctl detaillierte systemweite Protokolle aller Dienste und des spezifischen Dienstes bereitstellt.



Ich werde beide Dienstprogramme untersuchen, um Systemd-Protokolle anzuzeigen. Aber lassen Sie uns zunächst den Hauptunterschied zwischen den Befehlen systemctl und journalistctl verstehen.





Was ist systemctl

Systemctl ist ein Befehlszeilendienstprogramm, das Systemd-Dienste verwaltet, z. B. das Aktivieren oder Deaktivieren des Dienstes und das Anzeigen des Status. Der systemctl-Status Der Befehl gibt außerdem am Ende der Ausgabe einige Protokollzeilen des Dienstes aus, und dieses Protokoll folgt dem letzten Start. Diese Protokollzeilen des Dienstes stammen jedoch nur aus der Zeit nach dem aktuellen Start.

Was ist Journalctl?

Das Journalctl ist ein Befehlszeilendienstprogramm, das zum Drucken der von systemd gesammelten Protokolle verwendet wird. Im Vergleich zu systemctl bietet es eine detaillierte Ausgabe mit Filteroptionen. Dieses Dienstprogramm dient dazu:



  • Protokolle lesen (Ältestes Protokoll kommt zuerst)
  • Überwachen Sie Protokolle
  • Filtern Sie Protokolle nach Zeit, Dienst oder Benutzer

Der systemd sammelt Protokolle von Kernel, Diensten und Daemons und speichert sie an einem zentralen Ort.

So zeigen Sie das Protokoll eines Dienstes mit systemctl an

Die allgemeine Syntax zum Suchen des Protokolls eines Dienstes mithilfe von systemctl Das Dienstprogramm wird unten erwähnt.

systemctl-Status [ Dienstname ]

Um beispielsweise die Protokollinformationen des anzuzeigen smbd.service Verwenden Sie den unten angegebenen Befehl.

systemctl-Status smbd.service

Um eine Ausgabe ohne Paginierung zu erhalten, fügen Sie Folgendes hinzu –kein Pager Option im Befehl.

systemctl-Status smbd.service --no-pager

So zeigen Sie das Protokoll eines Dienstes mit „journalctl“ an

Um das Protokoll eines bestimmten Dienstes von systemd anzuzeigen, verwenden Sie Journalctl mit dem -In Befehls- und Dienst- oder Einheitenname.

Journalctl -In [ Dienstname ]

Im obigen Befehl ist die -In Flagge, Kurzform für -Einheit wird zum Filtern verwendet Journalctl Ausgabe durch einen Einheitennamen.

Zum Beispiel, um das Protokoll der auszudrucken smd Daemon, ich werde den ersetzen [Einheitenname] mit smbd.service .

Journalctl -In smbd.service

In der Ausgabe ist zu sehen, dass der älteste Eintrag zuerst kommt und dann nach jedem Start protokolliert wird.

Um den neuesten Eintrag zu erhalten, verwenden Sie zuerst -Es ist kurz für –Pager-Ende.

Journalctl -In smbd.service -Es ist

Wenn Sie die Paginierung in der Ausgabe weglassen möchten, hängen Sie einfach an –kein Pager in den oben genannten Befehlen.

Um die Protokolleinträge kontinuierlich in Echtzeit auszudrucken -F kurz für -folgen .

Journalctl -In smbd.service -F

Die Filterung kann durch die Verwendung des Flags -b, kurz für, weiter erweitert werden -Stiefel , wodurch die Protokolle basierend auf dem aktuellen Startvorgang gedruckt werden.

Journalctl -In [ Einheitenname ] -B

Lassen Sie uns die Protokolle ausdrucken smbd.service vom letzten Boot.

Journalctl -In smbd.service -B

Die obige Ausgabe ähnelt der Ausgabe, die wir mit erhalten systemctl-Status Befehl.

Um eine detaillierte Protokollübersicht zu erhalten, verwenden Sie die -X kurz für -Katalog Möglichkeit.

Journalctl -In smbd.service -X

Dadurch wird eine kurze Beschreibung des Protokolls angehängt.

Um nun Protokolle basierend auf der Zeit mit „journalctl“ zu drucken, gibt es zwei Möglichkeiten: -S kurz für -seit Und -IN kurz für -bis .

Journalctl -In [ Einheitenname ] -S „[Jahr-Monat-Tag] [Stunden:Minuten:Sekunden]“

Zum Beispiel, um die Protokolle der Einheit anzuzeigen smd aus 2024:01:30 12:05:00 .

Journalctl -In smbd.service -S „2024:01:30 12:05:00“

Abschluss

Um die Systemd-Protokolle eines Dienstes anzuzeigen, gibt es zwei Hauptdienstprogramme: Journalctl und Systemctl. Das Journalctl ist speziell für die Anzeige der Protokolle von systemd konzipiert. Allerdings verfügt systemctl auch über die Möglichkeit, das Protokoll des Dienstes auszudrucken. Um das Protokoll einer Dienstnutzung auszudrucken, journalctl -u [Einheitsname] und systemctl [Einheitenname].