2015-06-30 11 views
7

Ich bin neuer zu Logrotate. Wenn die Konfiguration zur Eigenschaft "dateformat" kommt, scheint logrotate strftime "% H" nicht zu unterstützen. hier ist die config: { täglich drehen 2 Größe 3M missingok notifempty dateext Datumsformat -% Y% m% d_% H:% M:% S ... }logrotate dateformat scheint nicht unterstützt% H:% M:% S

das gedrehte Dateiformat sieht in der Regel wie folgt aus: uwsgi_dev.log-20150630_% H:% M:% S, aber ich möchte die genaue "Stunde Minuten und Sekunden".

dank

Antwort

4

Unterstützung für% H wurde in Version 3.9.0 hinzugefügt. In früheren Versionen hat logrotate nicht STRFTIME „% H unterstützen:

Datumsformat format_string: Geben Sie die Erweiterung für dateext die Notation unter Verwendung ähnlicher strftime (3) Funktion nur% Y% m% D und% s Spezifizierer sind. erlaubt.

von der logrotate Manpage http://linux.die.net/man/8/logrotate

aber Sie %s im Datumsformat Zeichenfolge verwenden können, die seit 1970-01-01 die Anzahl von Sekunden ist. Sie dateformat -%Y%m%d-%s einstellen. Dies wird produzieren eindeutige Dateinamen jedes Mal, wenn das Protokoll gedreht wird, so Sie kann die Datei mehrmals am Tag drehen. Leider wird der %s Teil nicht einfach zu lesen sein, aber Sie können ihn einfach in ein lesbares Datum mit perl -e "print scalar(localtime(1451214849))" konvertieren.

Auf einigen Systemen ermöglicht das Programm date eine einfache Konvertierung mit date -d @1451214849 (z. B. GNU date). Auf den meisten Systemen (einschließlich Solaris date) können Sie mit der Syntax wie date -d "1970-01-01 + 1451214849 sec" Glück haben. Beachten Sie, dass Busybox date nur den @ Trick unterstützt, aber keine komplexen Ausdrücke des zweiten Beispiels.

+1

Unterstützung für% H wurde in Version [3.9.0] (https://github.com/logrotate/logrotate/blob/master/CHANGES) hinzugefügt. –

+1

Danke Ivan, guter Punkt; Ich habe meine Antwort bearbeitet. –

Verwandte Themen