มีวิธีทำเช่นนี้หรือไม่?
มีวิธีทำเช่นนี้หรือไม่?
คำตอบ:
ใน logrotate.conf ของคุณ (หรือไฟล์ equrotent logrotate.d) ให้เปลี่ยนบรรทัดที่ระบุว่า "
rotate 10
(หมายเลขของคุณอาจแตกต่างกัน) เป็นจำนวนที่มากกว่า ที่จะบอกให้เก็บหลายวันของบันทึก คุณสามารถทำให้มัน 36500 ซึ่งจะมีอายุคุณ 100 ปี
ฉันกำลังมองหาสิ่งนี้เพื่อหมุนการสำรองข้อมูลฐานข้อมูลรายวันรายสัปดาห์และรายเดือน ดังนั้นฉันจึงหมุนไฟล์ทุกวัน แต่ให้หมุนไฟล์ทุกสัปดาห์และเหมือนกันทุกปี
ใช้ตัวเลือกการคัดลอก จากคู่มือ:
copy
ทำสำเนา ทำแฟ้มบันทึก แต่อย่าเปลี่ยนต้นฉบับเลย ตัวอย่างเช่นตัวเลือกนี้สามารถใช้เพื่อสร้างสแนปชอตของไฟล์บันทึกปัจจุบันหรือเมื่อยูทิลิตี้อื่น ๆ ต้องตัดหรือแยกไฟล์ เมื่อใช้ตัวเลือกนี้ตัวเลือกการสร้างจะไม่มีผลเนื่องจากไฟล์บันทึกเก่ายังคงอยู่
หลีกเลี่ยงจุดที่เกี่ยวข้องกับการหมุน ... ;-)
ดูเหมือนว่าคุณสามารถเพิ่มคำว่า 'คัดลอก' ลงในไฟล์ที่เหมาะสม (น่าจะเป็น /etc/logrotate.d) ตัวอย่างเช่นสคริปต์ logrotate apache2 จะมีลักษณะเช่นนี้:
/var/log/apache2/*.log { รายสัปดาห์ missingok หมุน 52 การบีบอัด delaycompress notifempty สำเนา sharedscripts postrotate ถ้า [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; แล้วก็ /etc/init.d/apache2 รีโหลด> / dev / null Fi endscript }
ลองและดูว่ามันทำในสิ่งที่คุณต้องการ