Ich habe einen lang laufenden Prozess, der seine Protokolldatei schreibt stdout
. Ich möchte diese Ausgabe in verschiedenen Dateien speichern, diese Dateien automatisch verwalten (wie das Löschen / Archivieren der alten), ohne den Hauptprozess neu zu starten.
Eine Lösung wäre, die Ausgabe an eine Datei ( process > log.txt
) zu senden und darauf zu verwenden logrotate
, muss aber logrotate
das Programm neu starten, was nicht möglich ist.
Die andere Möglichkeit besteht darin, die Ausgabe an cronolog
( process | cronolog
) weiterzuleiten. In diesem Fall werden ältere Dateien jedoch nicht gelöscht / archiviert, sodass ich ein Programm erstellen muss, das die Wartung für mich übernimmt.
Das Beste wäre, beide Dienstprogramme verwenden zu können, da cronolog
ich den Prozess nicht neu starten muss und logrotate
die alten Protokolldateien genau so pflegen werde, wie ich es möchte. Gibt es eine Möglichkeit, diese beiden Programme miteinander zu arbeiten? Wenn nicht, was ist eine gute Lösung für dieses Problem?
stdout
zum Journal um und das Journal dreht die Protokolle bei Bedarf.