почему мы должны использовать create и copytruncate вместе?

40

У 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 вращения.

Маджид Азими
источник
4
Да, это не имеет смысла и man logrotateдаже говорит так: « copytruncate : [...] Когда используется эта опция, опция создания не будет иметь никакого эффекта, так как старый файл журнала остается на месте».
Ульрих Шварц
1
maxage 100удалит повернутые файлы, когда им станет больше 100 дней, а текущий файл будет повернут; даже если существует меньше, чем 4повернутые файлы.
Лутц Пречелт

Ответы:

57

Это, вероятно, ошибка, это можно найти только в одном примере из этого урока. Все остальные примеры есть copytruncateбез createопции. Также logrotate страница руководства утверждает, что она будет фактически проигнорирована :

copytruncate

После создания копии обрежьте исходный файл журнала до нулевого размера вместо того, чтобы перемещать старый файл журнала и, при необходимости, создавать новый. Его можно использовать, когда какой-либо программе нельзя сказать, чтобы она закрыла свой файл журнала, и, таким образом, может продолжить запись (добавление) в предыдущий файл журнала навсегда. Обратите внимание, что между копированием файла и его усечением существует очень маленький временной интервал, поэтому некоторые данные журналов могут быть потеряны. Когда эта опция используется, опция создания не будет иметь никакого эффекта, так как старый файл журнала остается на месте.


Что касается maxage, я думаю, что это может быть полезно, например, для лог-файлов, которые могут быть пустыми в течение нескольких периодов ротации (дней / недель / месяцев) - если вы используете notifempty, пустой лог-файл не будет вращаться, так что вы можете иметь слишком старые повернутые файлы все еще на месте ,

Marki555
источник