Trang người đàn ông logrotate
nó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à copytruncate
nê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 copytruncate
và delaycompress
tù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 delaycompress
khi 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ỉ địnhdelaycompress
cùng vớicopytruncate
?