logrotate theo kích thước - tôi có cần thay đổi cron không?


10

Cấu hình logrotate hiện tại của tôi trông như thế này (sử dụng logrotate 3.8.7)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

Nó chạy thành công mỗi ngày một lần, nhưng khi kích thước vượt quá 250M thì nó không được xoay. Vì vậy, nó chờ cho đến cuối ngày để xoay, bất kể kích thước.

Tôi đã đọc được rằng có tùy chọn maxsize và sau khi đổi size 250Msang maxsize 250Mnó vẫn không hoạt động.

Tôi có cần thiết lập một cron để chạy logrotate theo cách hàng giờ không, hay logrotate sẽ tự động chạy vì đang nghe kích thước tệp đó và tôi có điều gì khác xảy ra không?

Câu trả lời:


7

Có, bạn cần phải chạy logrotatenhiều hơn một lần một ngày để đạt được điều này. Điều này được trả lời trong đoạn giây của trang man logrotate(8) :

Thông thường, logrotateđược điều hành như một công việc định kỳ hàng ngày. Nó sẽ không sửa đổi nhật ký nhiều lần trong một ngày trừ khi tiêu chí cho nhật ký đó dựa trên kích thước của nhật ký và logrotateđang được chạy nhiều lần mỗi ngày hoặc trừ khi tùy chọn -fhoặc --forceđược sử dụng.

Nếu bạn muốn chạy logrotatehàng giờ thay vì hàng ngày, bạn có thể di chuyển nó:

mv /etc/cron.daily/logrotate /etc/cron.hourly

Kể từ 3.8.1 đã có maxsize. Sự khác biệt giữa sizemaxsizeđược mô tả ở đây:

maxsize kích thước

File log là xoay khi họ phát triển lớn hơn so với kích thước byte ngay cả trước khi khoảng thời gian quy định bổ sung ( daily, weekly, monthly, hoặc yearly). sizeTùy chọn liên quan tương tự ngoại trừ việc nó loại trừ lẫn nhau với các tùy chọn khoảng thời gian và nó làm cho các tệp nhật ký được xoay mà không quan tâm đến thời gian quay cuối cùng. Khi maxsizeđược sử dụng, cả kích thước và dấu thời gian của tệp nhật ký đều được xem xét.

Điều này sẽ làm cho cả hai phù hợp với mục đích sử dụng của bạn: sizekhông có bất kỳ khoảng thời gian nào và maxsizenếu cũng cần khoảng thời gian. Tuy nhiên, điều này không thay đổi thực tế là theo mặc định logrotatechỉ chạy hàng ngày. Khoảng thời gian đó phù hợp với hầu hết, vì trong hầu hết các trường hợp, phải mất nhiều thời gian hơn một ngày để một bản ghi phát triển hơn 250M.


1
FYI có một chỉ thị tối đa hóa, bắt đầu từ 8.1: hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/ Kẻ
Hommer Smith

Cảm ơn vì đã chú ý tôi đã đọc một phiên bản cũ của hướng dẫn, @HommerSmith! Tôi đã sửa câu trả lời của mình cho phù hợp.
Esa Jokinen
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.