Rain WikiWindows · Linux · Android

logrotate

Dịch vụHầu hết các bản phân phối Linux

logrotate là một tiện ích trên Linux dùng để xoay vòng, nén và xóa các tệp nhật ký để chúng không làm đầy ổ đĩa. Tiện ích này thường được chạy mỗi ngày một lần bởi systemd timer hoặc cron job và đọc tệp /etc/logrotate.conf cùng các quy tắc riêng cho từng gói trong /etc/logrotate.d/.

1Một quy tắc điển hình

Một quy tắc sẽ chỉ định một hoặc nhiều tệp nhật ký và các chỉ thị như daily hoặc weekly (tần suất), rotate 7 (số lượng tệp cũ cần giữ lại), compress (nén các tệp cũ bằng gzip), missingok (không báo lỗi nếu tệp không tồn tại), notifempty (bỏ qua các nhật ký trống) và postrotate ... endscript (lệnh chạy sau khi xoay vòng, ví dụ để mở lại nhật ký).

2copytruncate

Một số chương trình tiếp tục ghi vào cùng một tệp đang mở. copytruncate sẽ sao chép nhật ký rồi cắt bớt tệp gốc thay vì di chuyển nó, nhờ đó chương trình vẫn giữ được tệp xử lý của mình; một vài dòng được ghi trong quá trình sao chép có thể bị mất.

3Kiểm tra

logrotate -d /etc/logrotate.conf chạy ở chế độ gỡ lỗi và chỉ in ra những gì sẽ xảy ra. -f buộc thực hiện xoay vòng ngay cả khi chưa đến hạn.

Cách thêm và kiểm tra một quy tắc

  1. Tạo tệp /etc/logrotate.d/myapp với đường dẫn nhật ký và các chỉ thị, ví dụ: weekly, rotate 4, compress, missingok, notifempty.
  2. Chạy thử: sudo logrotate -d /etc/logrotate.d/myapp
  3. Nếu kết quả đầu ra hiển thị đúng, hãy buộc thực hiện một lần xoay vòng: sudo logrotate -f /etc/logrotate.d/myapp
  4. Kiểm tra kết quả: ls -l thư mục nhật ký.

Lưu ý

  • Mẫu đường dẫn sai có thể làm xoay vòng hoặc xóa nhật ký của các chương trình khác.
  • Các nhật ký được quản lý bởi systemd journal bị giới hạn trong journald.conf, không phải bởi logrotate.

Nguồn

  1. logrotate(8) man7.org
  2. logrotate(8) (Debian) manpages.debian.org

Xem xét lần cuối: