Страница руководства 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
?