чому ми повинні використовувати створення та копіювати спільно?


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 : [...] Коли використовується ця опція, параметр create не матиме ефекту, оскільки старий файл журналу залишається на місці."
Ульріх Шварц

1
maxage 100буде видалено обернені файли, коли вони стануть старше 100 днів і поточний файл буде повернутий; навіть коли існує менше, ніж 4обертаються файли.
Lutz Prechelt

Відповіді:


57

Це, мабуть, помилка, вона знайдена лише в одному прикладі цього підручника. Всі інші приклади є copytruncateбез createопції. Також logrotate сторінка man зазначає, що вона буде фактично проігнорована :

copytruncate

Обрізайте оригінальний файл журналу до нульового розміру після створення копії, замість того, щоб переміщувати старий файл журналу та необов’язково створювати новий. Її можна використовувати, коли якійсь програмі не можна сказати закрити свій файл реєстрації, і, таким чином, може продовжувати писати (додавати) до попереднього файлу журналу назавжди. Зауважте, що між копіюванням файла та обрізанням файлу існує дуже маленький відрізок часу, тому деякі дані журналу можуть бути втрачені. Якщо використовується ця опція, опція створення не матиме ефекту, оскільки старий файл журналу залишається на місці.


Що стосується maxage, я думаю, що це може бути корисним, наприклад, для журналів, які можуть бути порожніми протягом декількох періодів обертання (днів / тижнів / місяців) - якщо ви використовуєте notifempty, порожній файл журналу не обертається, тому у вас можуть бути занадто старі обернені файли на місці .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.