it-swarm.com.de

Löschen Sie Dateien mit logrotate

Ist es NUR möglich, die Protokolldateien in einem Verzeichnis mit logrotate zu löschen, ohne sie tatsächlich zu drehen? Wir haben eine App, die Protokolle im folgenden Format generiert: app.log.DD_MM_YYYY. Ich bin mit logrotate mit der folgenden Konfiguration nicht erfolgreich:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Kann log rotate dies tun oder sollte ich einfach ein Skript schreiben und es in cron platzieren?

Am besten, -Iulian

13
Iulian

In diesem Fall möchten Sie möglicherweise Postrotate verwenden. Im folgenden Beispiel löscht postrotate Dateien, die älter als 1 Tag nach dem Drehen der Protokolle sind. Sie können sie jederzeit an Ihre Bedürfnisse anpassen.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
17
Deeh

Der Zweck von logrotate besteht darin, eine benutzerdefinierte Anzahl von Protokolldateien in einem benutzerdefinierten Zeitintervall zu speichern. Ich würde Cron für Ihre Aufgabe verwenden. Mehr darüber, was Sie mit logrotate tun können, finden Sie hier: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

4
Alex