logrotate
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
- Tạo tệp
/etc/logrotate.d/myappvới đường dẫn nhật ký và các chỉ thị, ví dụ: weekly, rotate 4, compress, missingok, notifempty. - Chạy thử:
sudo logrotate -d /etc/logrotate.d/myapp - 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 - 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.
Bài liên quan
- journalctl và systemd journalCách đọc nhật ký bằng journalctl, kiểm tra dung lượng mà journal sử dụng và thu nhỏ nó một cách an toàn với các tùy chọn --vacuum.
- Sử dụng dung lượng đĩa với du và ncduCách tìm các tệp tin chiếm dụng dung lượng đĩa trên Linux bằng du và công cụ tương tác ncdu, với các tùy chọn giới hạn trong một hệ thống tệp.
- cron và crontabCách cron chạy các tác vụ theo lịch trình, năm trường thời gian của crontab, vị trí lưu trữ các tệp cron hệ thống và cách so sánh với systemd timers.
Nguồn
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Xem xét lần cuối: