ลบไฟล์ด้วย logrotate


13

เป็นไปได้หรือไม่ที่จะลบไฟล์บันทึกในไดเรกทอรีโดยใช้ logrotate โดยไม่มีการหมุนเวียนไฟล์ เรามีแอพที่สร้างบันทึกในรูปแบบต่อไปนี้: app.log.DD_MM_YYYY ฉันไม่ประสบความสำเร็จกับ logrotate ที่มีการกำหนดค่าต่อไปนี้:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

ล็อกการหมุนสามารถทำสิ่งนี้ได้หรือฉันควรเขียนสคริปต์และวางลงใน cron?

ดีที่สุด - ชาวยูเนี่ยน


หากคุณไม่ต้องการบันทึกเหล่านั้นทำไมไม่ปิดใช้งานคุณสมบัติการบันทึกในแอปของคุณ
Deeh

1
ฉันขอโทษ แต่ฉันไม่สามารถนับได้ว่าเป็นคำตอบ Deeh ในการป้อนความอยากรู้อยากเห็นของคุณเราต้องการบันทึกเหล่านั้นสำหรับการดำเนินการที่แตกต่างกันเช่นการแก้ไขข้อบกพร่องเราไม่ต้องการให้พวกเขาอยู่ที่นั่น
Iulian

คำตอบ:


16

ในกรณีนี้คุณอาจต้องการใช้ postrotate ในตัวอย่างด้านล่าง postrotate จะลบไฟล์ที่เก่ากว่าที่ 1 วันหลังจากบันทึกการหมุนแล้วโปรดแก้ไขให้เหมาะกับความต้องการของคุณ

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}

4

วัตถุประสงค์ของการ logrotate คือการเก็บจำนวนไฟล์บันทึกที่กำหนดเองในช่วงเวลาที่กำหนดเอง ฉันจะใช้ cron สำหรับงานของคุณ เพิ่มเติมเกี่ยวกับสิ่งที่คุณสามารถทำได้กับ logrotate ที่นี่: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet


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