LogRotate Tập lệnh tùy chỉnh Nhật ký phá vỡ tập lệnh?


0

Tôi có một kịch bản daemon tôi đã thực hiện luôn chạy trong nền. Nó được thiết lập để stdout ống và stderr cho một số tệp nhật ký như sau:

python27 etl_daemon.py 1>>/var/log/etl/etl_stdout.log 2>>/var/log/etl/etl_stderr.log

Tôi đã thiết lập logrotate trên các tệp nhật ký đó với cấu hình cho từng loại cơ bản là:

$ cat /etc/logrotate.d/etl_stdout
/var/log/etl/etl_stdout.log {
daily
rotate 14
compress

logrotate chắc chắn hoạt động về mặt nén và đổi tên các bản ghi cũ, nhưng có vẻ như mỗi lần nó chạy, nó làm hỏng tập lệnh của tôi và để nó chạy nhưng không còn làm gì nữa. Tôi đoán điều này có thể có liên quan đến việc cố gắng ghi vào một tệp mà bây giờ đã được đổi tên, nhưng tôi không chắc chắn. Ý tưởng? Các giải pháp?

Câu trả lời:


1

Thêm copytruncatechỉ thị vào khổ thơ logrotate của bạn. Sau đó, tập tin sẽ không được kéo ra từ dưới daemon của bạn.

Khi bạn làm điều đó, hãy chắc chắn viết ở chế độ chắp thêm (như trong ví dụ của bạn), nếu không, bạn sẽ kết thúc với các tệp thưa thớt sau khi xoay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.