Halaman manual logrotate
mengatakan bahwa:
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.
Saya bingung dengan ini. Jika suatu program tidak dapat diberitahu untuk menutup logfile-nya, ia akan terus menulis selamanya , tidak untuk suatu saat . Jika kompresi ditunda ke siklus rotasi berikutnya, program terus menulis ke file itu bahkan setelah siklus rotasi berikutnya. Bagaimana menunda menyelesaikan masalah?
Pemahaman saya adalah bahwa copytruncate
harus digunakan ketika suatu program tidak dapat diberitahu untuk menutup file log. Saya menyadari bahwa beberapa data yang ditulis ke logfile hilang ketika salinan sedang berlangsung.
Saya melihat file logrotate untuk couchdb, dan ia memiliki keduanya copytruncate
dan delaycompress
opsi.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Sepertinya tidak ada gunanya menggunakan delaycompress
ketika copytruncate
sudah ada di sana. Apa yang saya lewatkan?
copytruncate
, tidak perlu memberitahu program untuk menutup logfile-nya. Jadi tidak ada artinya untuk menentukandelaycompress
bersamacopytruncate
?