ตัดสินโดยการประทับเวลาในระบบของฉัน logrotate ทำการหมุนบันทึกประจำวันเมื่อ logrotate ทำงานโดย cron อย่างไรก็ตามถ้าฉันใช้มันเร็วกว่านั้นมันจะไม่หมุนไฟล์ logrotate จะรู้ได้อย่างไรว่าควรจะหมุนมันหรือไม่มันจะเก็บประวัติหรืออาจจะใช้การประทับเวลา?
ตัดสินโดยการประทับเวลาในระบบของฉัน logrotate ทำการหมุนบันทึกประจำวันเมื่อ logrotate ทำงานโดย cron อย่างไรก็ตามถ้าฉันใช้มันเร็วกว่านั้นมันจะไม่หมุนไฟล์ logrotate จะรู้ได้อย่างไรว่าควรจะหมุนมันหรือไม่มันจะเก็บประวัติหรืออาจจะใช้การประทับเวลา?
คำตอบ:
/var/lib/logrotate.status
ผมเชื่อว่ามันเป็นเนื้อหาของไฟล์รัฐซึ่งเป็นกรณีของฉันคือ แต่ละไฟล์มีหนึ่งบรรทัดซึ่งเป็นวันที่ซึ่งถูกหมุนครั้งล่าสุด หากคุณเรียกใช้ logrotate ในวันที่ไฟล์ที่กำหนดเนื่องจากการหมุนกำหนดจำนวนวันระหว่างวันที่ปัจจุบันและวันที่ในไฟล์ (1 สำหรับรายวัน, 7 สำหรับรายสัปดาห์และอื่น ๆ ) ไฟล์จะถูกหมุน
Logrotate ดูเหมือนจะไม่สนใจเวลาของวัน แม้ว่าโดยปกติแล้วจะทำงานที่ 2355 ถ้าคุณเรียกใช้ที่ 0130 แทนมันจะยังคงหมุนไฟล์ที่ทำเครื่องหมายทุกวันและทำล่าสุดเมื่อวานนี้ แต่เมื่อทำเสร็จแล้วมันจะใส่วันที่วันนี้ลงในไฟล์สถานะ (เทียบกับไฟล์ที่หมุน) ดังนั้นการรันครั้งที่สองที่ 2355 จะไม่ทำอะไรเลย
จากหน้า man logrotate:
โดยปกติ logrotate จะทำงานเป็นงาน cron รายวัน มันจะไม่แก้ไขบันทึกมากกว่าหนึ่งครั้งในหนึ่งวันเว้นแต่เกณฑ์สำหรับบันทึกนั้นขึ้นอยู่กับขนาดของบันทึกและ logrotate กำลังทำงานมากกว่าหนึ่งครั้งในแต่ละวันหรือยกเว้นว่ามีการใช้ตัวเลือก -f หรือ -force
/var/lib/logrotate/status
(ตามไฟล์ในกรณีของฉัน)