У Geek Stuff есть пример logrotate
. copytruncate
скопирует и урезает исходный файл журнала.
Тогда почему мы должны использовать create
? Исходный файл журнала не был удален.
/tmp/output.log {
size 1k
copytruncate
create
compress
compresscmd /bin/bzip2
compressext .bz2
rotate 4
maxage 100
}
Другой вопрос, в чем польза maxage 100
? rotate 4
Директива будет удалять старые файлы журналов после 4 вращения.
man logrotate
даже говорит так: « copytruncate : [...] Когда используется эта опция, опция создания не будет иметь никакого эффекта, так как старый файл журнала остается на месте».maxage 100
удалит повернутые файлы, когда им станет больше 100 дней, а текущий файл будет повернут; даже если существует меньше, чем4
повернутые файлы.Ответы:
Это, вероятно, ошибка, это можно найти только в одном примере из этого урока. Все остальные примеры есть
copytruncate
безcreate
опции. Такжеlogrotate
страница руководства утверждает, что она будет фактически проигнорирована :Что касается
maxage
, я думаю, что это может быть полезно, например, для лог-файлов, которые могут быть пустыми в течение нескольких периодов ротации (дней / недель / месяцев) - если вы используетеnotifempty
, пустой лог-файл не будет вращаться, так что вы можете иметь слишком старые повернутые файлы все еще на месте ,источник