Bạn không cho biết logrotate
tập tin nào sẽ xoay trên dòng lệnh. Bạn truyền cho nó một tập tin cấu hình. Vì vậy, trong trường hợp của bạn, logrotate
đang đọc /var/log/syslog
và cố gắng phân tích nó dưới dạng tệp cấu hình và không thành công (do đó là lỗi của bạn).
Nếu bạn muốn xoay /var/log/syslog
nó cần được liệt kê trong logrotate
tệp cấu hình ở đâu đó và bạn chỉ cần chạy logrotate
. Nếu nó quay gần đây, sau đó logrotate -f
buộc nó phải làm lại.
Đây là một mục ví dụ cho /var/log/syslog
Debian,
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}
Vì vậy, bạn cần điều đó trong một tệp, thông thường /etc/logrotate.conf
hoặc là một đoạn tệp để /etc/logrotate.d
giả sử các /etc/logrotate.conf
điểm của bạn ở đó, và sau đó bạn chỉ cần chạy logrotate /etc/logrotate.conf
.
Vì bạn đang chạy Debian, đây có thể là tất cả tại chỗ và tất cả những gì bạn cần thực sự là chạy logrotate -f /etc/logrotate.conf
(lưu ý, điều này sẽ xoay mọi nhật ký hiện được cấu hình trong logrotate).
Nếu bạn thực sự chỉ muốn xoay /var/log/syslog
, bạn sẽ cần tạo một tệp cấu hình chỉ thực hiện một bản ghi đó, dựa trên nội dung của /etc/logrotate.conf
+ /etc/logrotate.d/rsyslog
.