Dateien mit logrotate löschen

13

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 erfolglos, das die folgende Konfiguration hat:

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

Kann ich log drehen, oder soll ich einfach ein Skript schreiben und es in cron platzieren?

Beste, -Iulianer

Iulian
quelle
Wenn Sie diese Protokolle nicht benötigen, deaktivieren Sie die Protokollierungsfunktion in Ihrer App.
Deeh
1
Es tut mir leid, aber ich kann das nicht als Antwort betrachten, Deeh. Um Ihre Neugier zu stillen, benötigen wir diese Protokolle für verschiedene Vorgänge wie das Debuggen. Wir möchten sie nur nicht dort belassen, damit sie verrotten.
Iulian,

Antworten:

16

In diesem Fall möchten Sie möglicherweise Postrotate verwenden. Im folgenden Beispiel löscht postrotate Dateien, die älter als 1 Tag sind, nachdem die Protokolle gedreht wurden. 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
}
Deeh
quelle
3

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 machen können, finden Sie hier: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Alex
quelle
2
Bitte posten Sie keine Nur-Link-Antworten, um ein Verrotten des Links zu verhindern. Fügen Sie stattdessen die relevantesten Informationen aus dem Link zu Ihrer Antwort hinzu oder posten Sie den Link als Kommentar anstelle einer Antwort. Weitere Informationen finden Sie in diesem Hilfeartikel.
Sven