Сторінка людини 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?