2015-06-30 14 views
7

Sono più recente a logrotate. quando la configurazione arriva alla proprietà "dateformat", sembra che logrotate non supporti strftime "% H". ecco la configurazione: { giornaliero ruotare 2 dimensioni 3M missingok notifempty dateext dateformat -% Y% m% d_% H:% M:% S ... }dataformat logrotato sembra non supportare% H:% M:% S

ruotato il formato del file tende ad assomigliare a: uwsgi_dev.log-20150630_% H:% M:% S, ma voglio l'esatto "ore minuti e secondi".

grazie

risposta

4

supporto per H% è stato aggiunto nella versione 3.9.0. Nelle versioni precedenti, logrotate non supportava strftime "% H:

dateformat FORMAT_STRING: specificare l'estensione per dateext usando la notazione simile a strftime (3) funzione solo% Y% m% d e% s specificatori sono. permesso.

Dalla pagina logrotate uomo http://linux.die.net/man/8/logrotate

Tuttavia, è possibile utilizzare %s nella stringa dateformat, che è il numero di secondi dal 1970-01-01. è possibile impostare dateformat -%Y%m%d-%s. Questo produrrà nomi di file unici ogni volta che il registro viene ruotato, quindi tu può ruotare il file più volte al giorno. Sfortunatamente, la parte %s non sarà facile da leggere, ma puoi facilmente convertirla in una data leggibile con perl -e "print scalar(localtime(1451214849))".

Su alcuni sistemi, il programma date consente di eseguire facilmente tale conversione con date -d @1451214849 (ad esempio GNU date). Sulla maggior parte dei sistemi (incluso ad esempio Solaris date), si può avere fortuna con la sintassi come date -d "1970-01-01 + 1451214849 sec". Nota che Busybox date supporta solo il trucco @ ma non complesso del secondo esempio.

+1

Il supporto per% H è stato aggiunto nella versione [3.9.0] (https://github.com/logrotate/logrotate/blob/master/CHANGES). –

+1

Grazie Ivan, buon punto; Ho modificato la mia risposta. –

Problemi correlati