2015-06-30 17 views
7

Ben daha yeni oturum açmak için daha yeniyim. Yapılandırma "dateformat" mülküne geldiğinde, logrotate strftime "% H" yi desteklemiyor gibi görünüyor. Burada yapılandırma olduğunu: {günlük döndürmek 2 boyutu 3M missingok notifempty dateext dateformat -%% Y m% d_% H:% M:% S ... }logrotate dateformat desteklemiyor görünüyor% H:% M:% S

döndürülmüş Dosya biçimi gibi görünmek eğilimindedir: uwsgi_dev.log-20150630_% H:% M:% S, ama tam olarak "saat dakika ve saniye" istiyorum. % H

sayesinde

cevap

4

Destek sürümü 3.9.0 yılında eklenmiştir.

dateformat FORMAT_STRING: önceki versiyonlarda, logrotate strftime "% H desteklememiştir (3) işlev strftime'da benzer gösterimi kullanılarak dateext uzantısını belirtir Sadece% Y'nin% d% m ve% s belirteçleri bulunmaktadır. izin verdi. http://linux.die.net/man/8/logrotate

Ancak logrotate adam sayfasından

, sen 1970-01-01 itibaren saniye sayısıdır dateformat dize, içinde %s kullanabilirsiniz. sen dateformat -%Y%m%d-%s ayarlayabilirsiniz. Bu üretecek log her döndürüldüğünde benzersiz dosya isimleri, böylece dosyayı günde birkaç kez döndürebilir. Ne yazık ki, %s bölümünün okunması kolay olmayacak, ancak perl -e "print scalar(localtime(1451214849))" ile kolayca okunabilir bir tarihe dönüştürebilirsiniz.

Bazı sistemlerde, date programı, date -d @1451214849 (örn. GNU date) ile bu tür dönüşümü kolayca gerçekleştirmeyi sağlar. Çoğu sistemde (örneğin, Solaris date), date -d "1970-01-01 + 1451214849 sec" gibi sözdizimiyle şansınız olabilir. Busybox date'un yalnızca @ numarasını desteklediğini, ancak ikinci örneğin karmaşık ifadelerini desteklemediğini unutmayın.

+1

% H desteği [3.9.0] sürümüne eklendi (https://github.com/logrotate/logrotate/blob/master/CHANGES). –

+1

Teşekkürler Ivan, iyi nokta; Cevabımı düzenledim. –

İlgili konular