logrotate ตามขนาด - ฉันต้องเปลี่ยน cron หรือไม่


10

การกำหนดค่า logrotate ปัจจุบันของฉันมีลักษณะเช่นนี้ (ใช้ logrotate 3.8.7)

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

มันทำงานได้สำเร็จวันละครั้ง แต่เมื่อขนาดเกิน 250M จะไม่หมุน ดังนั้นมันจะรอจนถึงสิ้นวันที่จะหมุนโดยไม่คำนึงถึงขนาด

ผมเคยอ่านว่ามีตัวเลือก maxsize และหลังจากที่เปลี่ยนsize 250Mไปmaxsize 250Mก็ยังไม่ได้ทำงาน

ฉันต้องตั้งค่า cron ให้เรียกใช้ logrotate แบบรายชั่วโมงหรือไม่หรือ logrotate จะทำงานโดยอัตโนมัติเพราะกำลังฟังขนาดไฟล์นั้นและฉันมีสิ่งผิดปกติเกิดขึ้นหรือไม่

คำตอบ:


7

ใช่คุณต้องวิ่งlogrotateมากกว่าหนึ่งครั้งต่อวันเพื่อให้บรรลุเป้าหมายนี้ นี่คือคำตอบในวรรควินาทีของ man page logrotate(8) :

โดยปกติlogrotateจะทำงานเป็นงาน cron รายวัน มันจะไม่แก้ไขบันทึกหลาย ๆ ครั้งในหนึ่งวันเว้นแต่ว่าเกณฑ์สำหรับบันทึกนั้นจะขึ้นอยู่กับขนาดของบันทึกและlogrotateจะถูกเรียกใช้หลายครั้งในแต่ละวันหรือยกเว้นว่ามีการใช้ตัวเลือก-fหรือ--force

หากคุณต้องการทำงานlogrotateทุกชั่วโมงแทนที่จะเป็นรายวันคุณสามารถย้ายได้:

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

ตั้งแต่ 3.8.1 maxsizeได้มีการ ความแตกต่างระหว่างsizeและmaxsizeอธิบายไว้ที่นี่:

maxsize ขนาด

ล็อกไฟล์จะหมุนเมื่อพวกเขาเติบโตมีขนาดใหญ่กว่าขนาดไบต์แม้กระทั่งก่อนที่ช่วงเวลาที่กำหนดนอกจากนี้ ( daily, weekly, monthlyหรือyearly) sizeตัวเลือกที่เกี่ยวข้องนั้นคล้ายคลึงกันยกเว้นเป็นเอกสิทธิ์เฉพาะบุคคลกับตัวเลือกช่วงเวลาและทำให้ไฟล์บันทึกถูกหมุนโดยไม่คำนึงถึงเวลาการหมุนครั้งล่าสุด เมื่อ maxsizeใช้จะพิจารณาทั้งขนาดและเวลาของไฟล์บันทึกการทำงาน

สิ่งนี้จะทำให้ทั้งสองเหมาะสำหรับการใช้งานของคุณ: sizeโดยไม่มีช่วงเวลาใด ๆ และmaxsizeหากจำเป็นต้องใช้ช่วงเวลาด้วย อย่างไรก็ตามสิ่งนี้ไม่ได้เปลี่ยนความจริงที่ว่าโดยค่าเริ่มต้นlogrotateทำงานเฉพาะรายวัน 250Mช่วงเวลาที่เหมาะสำหรับการมากที่สุดเช่นเดียวกับในกรณีส่วนใหญ่ก็จะใช้เวลามากนานกว่าวันสำหรับการเข้าสู่ระบบที่จะเติบโตมากกว่า


1
FYI มีคำสั่งขนาดสูงสุดเริ่มต้นที่ 8.1: hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/…
Smith

ขอบคุณที่สังเกตว่าฉันอ่านคู่มือรุ่นเก่า @HommerSmith! ฉันแก้ไขคำตอบของฉันแล้ว
Esa Jokinen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.