Trang người đàn ông logrotatenói rằng:
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.
Tôi bối rối vì điều này. Nếu một chương trình không thể được yêu cầu đóng logfile của nó, nó sẽ tiếp tục viết mãi mãi , không phải trong một thời gian . Nếu quá trình nén bị hoãn sang chu kỳ quay tiếp theo, chương trình sẽ tiếp tục ghi vào tệp đó ngay cả sau chu kỳ xoay tiếp theo. Làm thế nào là hoãn giải quyết vấn đề?
Sự hiểu biết của tôi là copytruncatenên được sử dụng khi một chương trình không thể được yêu cầu đóng logfile. Tôi biết rằng một số dữ liệu được ghi vào logfile bị mất khi tiến hành sao chép.
Tôi đã xem tệp logrotate cho couchdb, và nó có cả hai copytruncatevà delaycompresstùy chọn.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Có vẻ như không có điểm sử dụng delaycompresskhi copytruncateđã có. Tôi đang thiếu gì?
copytruncate, không cần yêu cầu chương trình đóng logfile. Vì vậy, nó là vô nghĩa để chỉ địnhdelaycompresscùng vớicopytruncate?