Поддержка% H была добавлена в версии 3.9.0. В более ранних версиях, Logrotate не поддерживает STRFTIME «% H:
DateFormat FORMAT_STRING: Определяет расширение для dateext с использованием нотации, аналогичной STRFTIME (3) функции только% Y% м% D и% S спецификаторы. допускается.
на странице Logrotate человек http://linux.die.net/man/8/logrotate
Однако, вы можете использовать %s
в DateFormat строку, которая является количество секунд, прошедших с 1970-01-01. вы можете установить dateformat -%Y%m%d-%s
. Это даст уникальные имена файлов при каждом повороте журнала, поэтому вы может вращать файл несколько раз в день. К сожалению, часть %s
будет непросто читать, но вы можете легко преобразовать ее обратно в читаемую дату с perl -e "print scalar(localtime(1451214849))"
.
В некоторых системах программа date
позволяет легко сделать такое преобразование с помощью date -d @1451214849
(например, GNU date
). В большинстве систем (включая, например, Solaris date
) вам может повезти с синтаксисом, например date -d "1970-01-01 + 1451214849 sec"
. Обратите внимание, что Busybox date
поддерживает только трюк @
, но не сложные выражения второго примера.
Поддержка% H была добавлена в версию [3.9.0] (https://github.com/logrotate/logrotate/blob/master/CHANGES). –
Спасибо, Иван, хорошая точка; Я отредактировал свой ответ. –