Linux journalctl-Befehl

Linux 命令大全Linux-Befehlsreferenz


Was ist journalctl?

journalctl ist ein leistungsstarkes Werkzeug in Linux zum Abfragen und Anzeigen von systemd-Protokollen. Als Teil des systemd-Ökosystems bietet es eine zentrale Protokollverwaltung und ersetzt den traditionellen syslog-Dienst.

Kernfunktionen

  1. Binäre Log-Speicherung: Logs werden im Binärformat gespeichert, um die Abrufeffizienz zu verbessern.
  2. Strukturierte Logs: Unterstützt das Anhängen von Metadaten und strukturierten Log-Feldern.
  3. Echtzeitüberwachung: Kann Log-Änderungen in Echtzeit verfolgen.
  4. Mehrere Filtermethoden: Unterstützt das Filtern nach Zeit, Dienst, Priorität und vielen weiteren Bedingungen.

Grundlegende Syntax

Das grundlegende Befehlsformat für journalctl lautet wie folgt:

journalctl [选项] [匹配条件...]

Übersicht über gängige Optionen

Option Beschreibung
-b Logs des aktuellen Systemstarts anzeigen
-f Logs verfolgen (ähnlich wie tail -f)
-k Nur Kernel-Meldungen anzeigen
-u Logs für eine angegebene Unit anzeigen
-n Die neuesten n Log-Einträge anzeigen
--since Logs nach einer angegebenen Zeit anzeigen
--until Protokolle vor einem angegebenen Zeitpunkt anzeigen

Häufige Anwendungsbeispiele

1. Vollständige Systemprotokolle anzeigen

Beispiel

journalctl

2. Protokolle für den aktuellen Bootvorgang anzeigen

Beispiel

journalctl -b

3. Neue Protokolle in Echtzeit überwachen

Beispiel

journalctl -f

4. Protokolle für einen bestimmten Dienst anzeigen

Beispiel

journalctl -u nginx.service

5. Nach Zeitraum abfragen

Beispiel

journalctl --since "2023-01-01 00:00:00" --until "2023-01-02 12:00:00"

6. Protokolle auf Fehlerstufe anzeigen

Beispiel

journalctl -p err

Filterung nach Protokollpriorität

journalctl unterstützt das Filtern nach Log-Priorität. Die Prioritäten sind wie folgt definiert:

Priorität Wert Beschreibung
emerg 0 Notfall
alert 1 Erfordert sofortige Bearbeitung
crit 2 Kritisch
err 3 Fehler
warning 4 Warnung
notice 5 Hinweis
Info 6 Informativ
debug 7 Debug

Anwendungsbeispiele:

Beispiel

# Protokolle auf Fehlerstufe und höher anzeigen
journalctl -p err

# Protokolle auf Warnstufe und höher anzeigen
journalctl -p Warnung

Erweiterte Nutzung

1. Belegten Speicherplatz von Logs anzeigen

Beispiel

journalctl --disk-usage

2. Alte Logs bereinigen

Beispiel

# Logs der letzten 2 Tage behalten
journalctl --vacuum-time=2d

# Maximale Log-Nutzung auf 500MB begrenzen
journalctl --vacuum-size=500M

3. Ausgabe im JSON-Format

Beispiel

journalctl -o json

4. Vollständige Feldinformationen anzeigen

Beispiel

journalctl -o verbose

5. Nach einem bestimmten Feld filtern

Beispiel

# Protokolle für eine bestimmte Prozess-ID anzeigen
journalctl _PID=1234

# Protokolle für einen bestimmten Benutzer anzeigen
journalctl _UID=1000

Praktische Tipps

1. Kombinierte Abfragen

Beispiel

# Fehlerprotokolle für den nginx-Dienst seit gestern abfragen
journalctl -u nginx.service --since yesterday -p err

2. Anzeige mit Paging

Beispiel

journalctl | less

3. Protokolle in Datei exportieren

Beispiel

journalctl --since "2023-01-01" > journal.log

4. Kernel-Ringpuffer-Meldungen anzeigen

Beispiel

journalctl -k

5. Protokolle des Systemstartvorgangs anzeigen

Beispiel

journalctl -b0 | grep "Starting"

Problemlösungen

Problem 1: Unvollständige Protokollanzeige

Lösung:

Beispiel

# Ausgabezeilenlimit erhöhen
journalctl --no-pager

Problem 2: Wie kann man rotierte alte Protokolle anzeigen?

Lösung:

Beispiel

# Alle Protokolle anzeigen (einschließlich archivierter)
journalctl -a

Problem 3: Wie kann man Protokolle zu einem bestimmten Zeitpunkt anzeigen?

Lösung:

Beispiel

# Zeitabfrage sekundengenau
journalctl --since "2023-01-01 12:00:00" --until "2023-01-01 12:05:00"

Zusammenfassungs-Flussdiagramm

Linux 命令大全Linux-Befehlsreferenz

Andere Erweiterungen