การกำหนดค่า logrotate โดยไม่มีการเข้าถึงรูท (ต่อการหมุนบันทึกผู้ใช้)


18

สามารถกำหนดค่า logrotate ได้ดีที่สุดต่อผู้ใช้ในการหมุนไฟล์ในโฮมไดเร็กตอรี่ของผู้ใช้ภายใต้การควบคุมของผู้ใช้แต่ละคนcrontab -e?

คำตอบ:


27

ลองขั้นตอนนี้:

  1. สร้าง/home/user/logrotateโฟลเดอร์

    mkdir /home/user/logrotate
    
  2. สร้าง/home/user/logrotate/my.confไฟล์การกำหนดค่าด้วยคำสั่ง logrotate ตามที่คุณต้องการ

  3. สร้าง/home/user/logrotate/cronjobเพื่อรัน logrotate ทุกวันเวลา 2:30 น. (นี่คือตัวอย่าง)

    30 2 * * * /usr/sbin/logrotate -s /home/user/logrotate/status /home/user/logrotate/my.conf > /dev/null 2>&1
    
  4. ตรวจสอบไวยากรณ์ไฟล์กำหนดค่าของคุณ:

    logrotate -d /home/user/logrotate/my.conf
    
  5. กำหนดค่าcrontabให้เรียกใช้logrotate ( คำเตือน : สิ่งนี้จะลบรายการที่มีอยู่ใน crontab ของคุณใช้crontab -eเพื่อเพิ่มบรรทัดจากขั้นตอน 3 ไปยัง crontab ที่มีอยู่ด้วยตนเอง):

    crontab /home/user/logrotate/cronjob 
    

หลังจากคำสั่งสุดท้ายนี้logrotateจะหมุนไฟล์ตามที่อธิบายในและบันทึกสถานะล็อกไฟล์ใน/home/user/logrotate/my.conf/home/user/logrotate/status

ใช้:

crontab -r   # remove crontab activities for user
crontab -l   # to list crontab activity for user
crontab -e   # edit user crontab entries

นี่คือlogrotateและcrontabหน้าคน


3
คำแนะนำมาก อาจจะกล่าวได้ว่า 'crontab <file>' จะลบ cronjobs ที่กำหนดค่าไว้ก่อนหน้านี้ทั้งหมด เพียงแค่นี้ก็เกิดขึ้นกับฉัน - โชคดีที่ผมมีสำรอง :)
pederpansen

1
ขอบคุณ @pederpansen สำหรับการปรับปรุงคำตอบของฉัน :)
Lety

2
ขอบคุณที่พารามิเตอร์จะหลีกเลี่ยง-s error: error creating unique temp file: Permission denied
Marco Marsala
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.