วิธีที่จะทำให้การเปลี่ยนแปลงการหมุนล็อกมีผล


99

ฉันติดตามลิงก์นี้เพื่อเปลี่ยนการตั้งค่าการหมุนบันทึกสำหรับ RHEL 6

หลังจากฉันเปลี่ยนแปลงไฟล์ config แล้วฉันควรทำอย่างไรเพื่อให้สิ่งนี้มีผล

คำตอบ:


139

logrotateใช้crontabในการทำงาน มันทำงานตามกำหนดเวลาไม่ใช่ภูตดังนั้นไม่จำเป็นต้องโหลดการกำหนดค่าใหม่
เมื่อcrontabประมวลผลlogrotateไฟล์จะใช้ไฟล์กำหนดค่าใหม่ของคุณโดยอัตโนมัติ
หากคุณต้องการทดสอบการกำหนดค่าของคุณคุณสามารถดำเนินการlogrotateด้วยตัวคุณเองด้วยคำสั่ง:

logrotate /etc/logrotate.d/your-logrotate-config

หรือตามที่ระบุไว้ในความคิดเห็นระบุlogrotateบรรทัดในผลลัพธ์ของคำสั่งcrontab -lและดำเนินการบรรทัดคำสั่งอ้างถึงคำตอบของ slm ที่จะมีคำอธิบายที่แม่นยำ cron.daily


1
เพียงเพิ่มคำตอบของคุณรายการ cron สำหรับlogrotateมีกำหนดให้ทำงานวันละครั้ง
mkc

@ Ketan ฉันจะทำให้มันมีผลกระทบได้อย่างไร? ขอบคุณ
BufBills

ไม่แน่ใจ. สิ่งหนึ่งที่เป็นไปได้คือการค้นหารายการที่สอดคล้องกันจาก crontab ผ่านcrontab -lและดำเนินการ
mkc

2
หากคุณต้องการให้มีผลบังคับใช้ cron afterwords ทันที
slm

2
logrotateมี-dตัวเลือกสำหรับการทดสอบ (หรือ "แก้จุดบกพร่อง") ฉันขอแนะนำให้เรียกใช้อย่างน้อยหนึ่งครั้ง
FrustratedWithFormsDesigner

36

การlogrotateตั้งค่าส่วนใหญ่ที่ฉันเคยเห็นใน distros ต่างๆหมดลง/etc/cron.dailyแล้ว logrotateมีสคริปต์เปลือกมีชื่อ aptly เป็น

ตัวอย่าง

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

คู่มือการใช้งาน

หากคุณต้องการให้มันรันด้วยตนเองเพียงรันสคริปต์ในฐานะรูท:

$ sudo /etc/cron.daily/logrotate

หากคุณดูที่สคริปต์ซึ่งโดยทั่วไปแล้วจะแสดงวิธีที่คุณสามารถเรียกใช้logrotateด้วยตนเองโดยเพียงแค่เรียกใช้logrotate+ เส้นทางไปยังไฟล์การกำหนดค่า

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

31

ควรอัตโนมัติผ่าน cron คุณสามารถบังคับให้ทดสอบการเปลี่ยนแปลงของคุณ

สำหรับ global logrotate:

sudo logrotate -v -f /etc/logrotate.conf

สำหรับไฟล์ conf เดียว:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-fสำหรับการหมุนแรงนั้นยังมี-dสำหรับการดีบักซึ่งก็คือ Dry run มันจะพิมพ์ทุกอย่างที่ทำได้ แต่ไม่ได้ทำจริงๆ
ThorSummoner

5

บนเครื่อง CentOS 6.5 ของฉันสำหรับการตั้งค่า logrotate สำหรับ nginx ฉันต้องทำสิ่งนี้:

logrotate /etc/logrotate.d/nginx

จากนั้นฉันตรวจสอบว่า logrotate ดูแลการตั้งค่า nginx ใหม่ของฉันเช่นนี้หรือไม่:

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