LU11.A01: Alte Logs

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

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

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

  • message.log (Erstellt am 04.01.2025)
  • message20241215.log
  • message20241220.log
  • message20241228.log

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

  • Aufruf: python3 messagelog.py 10 1
  • Aktionen: Keine

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

  • Aufruf: python3 messagelog.py 3 2
  • Aktionen:
    1. Die Datei message.log wird in message20250110.log umbenannt.
    2. Die Dateien message20241215.log und message20241220.log werden gelöscht.
    3. Eine neue, leere Datei message.log wird erstellt.

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

  • modul/m122/learningunits/lu11/aufgaben/logage.txt
  • Zuletzt geändert: 2025/01/13 09:31
  • von msuter