Bash:
Protokollierung

Wie geht das:

Im Bash kann Logging so einfach sein wie das Umleiten oder Anhängen der Ausgabe an eine Datei. Hier ein einfaches Beispiel:

echo "Das Skript startet..." >> script.log
# Ihre Skriptbefehle hier
echo "Skript beendet am $(date)" >> script.log

Für etwas Fortgeschritteneres könnten Sie syslog für systemweites Logging einbinden:

logger "Benutzerdefinierte Nachricht von meinem Skript"

logger sendet eine Log-Nachricht an den syslog-Dienst, der diese dann gemäß der System-syslog-Konfiguration verarbeitet.

Beispiel für eine in script.log aufgezeichnete Ausgabe:

Das Skript startet...
Skript beendet am Tue Mar 23 09:26:35 PDT 2021

Vertiefung

Historisch gesehen wurde das Logging in Unix-ähnlichen Systemen durch den syslog-Dienst erleichtert, der es verschiedenen Anwendungen und Teilen des Systems ermöglicht, Nachrichten zentral zu protokollieren. Dies ermöglicht die Implementierung eines standardisierten Loggingmechanismus im gesamten System.

Wenn es um Alternativen geht, könnten einige in Betracht ziehen, syslog-ng oder rsyslog für fortgeschrittenere Logging-Funktionen zu nutzen oder Logs in einer Zeitreihendatenbank für Analysezwecke zu schreiben. Für Anwendungen mit höherem Komplexitätsgrad kann es sogar für eine Skriptsprache wie Bash sinnvoll sein, eine dedizierte Logging-Bibliothek oder Anwendung wie Log4j (im Java-Ökosystem) oder Monolog (in PHP) zu verwenden, die strukturierte und konfigurierbare Logging-Optionen bieten.

Die Art und Weise, wie Sie das Logging implementieren, hängt stark von den Anforderungen Ihrer Anwendung ab. Wenn Sie lediglich eine einfache Ausgabe benötigen, um den Fortschritt des Skripts zu verfolgen, ist das Anhängen von Nachrichten an eine Datei einfach und bequem. Für ein skalierbares und robustes Logging jedoch sollten Sie eine Integration mit einem Logging-System in Erwägung ziehen, das Funktionen wie Log-Rotation, Log-Level und Remote-Logging unterstützt.

Siehe auch

  • Die man-Seiten für die Funktionen logger und syslog sind immer hilfreich, probieren Sie man logger oder man syslog.
  • Für einen vertieften Einblick in das Systemlogging ziehen Sie das Lesen der Dokumentation von rsyslog und syslog-ng in Betracht.
  • Um mehr über den historischen Kontext und die Prinzipien hinter dem Logging in Unix-ähnlichen Systemen zu erfahren, bietet das im RFC 5424 dokumentierte Syslog-Protokoll umfassende Informationen.