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