Logrotate

Logrotate für Microsoft Windows
Um Anwendungsübergreifend einmal am Tag alle Logdateien an einem Zielort zusammen zu fassen und diese mehrere Tage aufzubewahren bevor sie automatisch gelöscht werden wurde ein Logrotate Script für Microsoft Windows geschrieben.
 
Im Wesentlichen besteht es aus 3 Dateien:
  • 7za.exe - Kommandozeilen-Anwendung des freien Pack-Programmes 7-Zip
  • delage32.exe - löscht aus einem ordner Dateien deren angegebenes Alter überschritten ist
  • logrotate.cmd - Batch Datei welche die ersten beiden Anwendungen steuert und die Logdateien kopiert
Bei unseren eigenen Anwendungen liefern wir dann noch weitere Batch Datei mit in welcher der Aufruf der logrotate.cmd mit den nötigen Porogrammspezifischen Parametern hinterlegt ist.
 
Die Datei können Sie sich gern selbst anpassen. Die logrotate.cmd erwartet drei Parameter.
Im folgenden ein Beispiel:
 
logrotate.cmd "%cd%\UMS4MSExchange_Server_Log.txt" "%cd%\LogArchive\" 9
  1. Als erstes wird immer die Quelldatei angegeben, also das Logfile
  2. als zweiten Parameter das Zielarchiv ohne Dateinamen
  3. als dritten Parameter die Anzahl Tage die im Logarchiv aufgehoben werden soll (im Beispiel 9 Tage)
Nach diesem Schema ist es auch einfach sich ein einfaches Logrotate Script für andere Anwendungen zu erstellen oder die von uns vorgegebenen Pfade anzupassen wenn man seine Logdateien an einem anderen zentralen Ort ablegen möchte.
... und automatisch Ausführen ?
Funktioniert ganz einfach über den in Microsoft Windows integrierten Taskplaner. Wählen Sie dazu die vorbereitete Batch-Datei und passen Sie die Einstellungen zum Ausführungszeitpunkt an. Sie können den Ausführungszeitpunkt nach Ihren Wünschen wählen, z.B. täglich, oder wöchentlich. Wenn Sie z.B. wöchentlich oder monatlich wählen ist es sinnvol den Zeitraum über den die Logfiles aufgehoben werden sollen entsprechend zu verlängern das man am Ende die gewünschte Anzahl Logfiles im Ablagearchiv hat.
Bei der Option "Starten in (optional)" hinterlegen Sie den Ordner / Pfad in welchem die Batch-Datei liegt.