Сторінка людини logrotate
говорить, що:
It can be used when some program cannot be told to close its logfile
and thus might continue writing to the previous log file for some
time.
Мене це бентежить. Якщо програмі не вдасться сказати закрити свій логін-файл, вона продовжуватиме писати вічно , а не колись . Якщо стиснення перенесено на наступний цикл обертання, програма продовжує записувати в цей файл навіть після наступного циклу обертання. Як відкладається вирішення проблеми?
Я розумію, що його copytruncate
слід використовувати, коли програмі не можна сказати закрити файл журналу. Мені відомо, що деякі дані, записані в файл реєстрації, втрачаються, коли копія виконується.
Я дивився файл logrotate для couchdb, і він мав copytruncate
і delaycompress
варіанти, і варіанти.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Схоже, немає сенсу використовувати, delaycompress
коли copytruncate
вже є. Що я пропускаю?
copytruncate
, не потрібно казати програмі закривати її логін. Тож чи безглуздо вказуватиdelaycompress
разом ізcopytruncate
?