LU11.A01: Alte Logs

Erstelle ein Skript, das Logdateien archiviert und löscht.

Ausgangslage

Ein Datenbankserver schreibt seine Meldungen in die Datei ~/log/message.log (Linux) bzw. C:\log\message.log (Windows). Sobald die Logdatei ein vorgegebenes Alter in Tagen (Argument 1) erreicht hat, wird …

  1. die Logdatei mit dem Tagesdatum (Format: „YYYYMMDD“„) im Dateinamen gesichert. Zum Beispiel:
    • message20210510.log
    • message20210511.log
  2. überzählige Sicherungsdateien gelöscht. Wie viele Sicherungsdateien behalten werden, ist vom Argument 2 abhängig.
  3. eine neue leere Logdatei angelegt

Beispiele

Für unsere Beispiele nehmen wir an, dass folgende Dateien vorhanden sind:

Ausserdem gilt für alle Aufrufe, dass diese am 10.1.2025 gemacht werden.

Beispiel 1

Die Logdatei ist weniger als 10 Tage alt, somit wird keine Aktion durchgeführt.

Beispiel 2

Nachdem die Datei umbenannt wurde, existieren 4 Sicherungsdateien. Gemäss dem zweiten Argument sollen aber nur 2 Sicherungsdateien behalten werden. Deshalb werden die zwei ältesten Sicherungsdateien gelöscht.


Marcel Suter