เนื่องจากหน้าคนไม่ตอบคำถามของฉันและฉันไม่ต้องการบังคับวงจรการหมุนเวียนฉันจึงตัดสินใจถามคำถามที่นี่
man page สำหรับ logrotate แสดงตัวอย่างต่อไปนี้:
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail www@my.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
ตัวอย่างทั้งหมดที่มี wildcard มีเพียงรายการเดียว ตอนนี้สิ่งที่ฉันสนใจคือไม่ว่าจะอนุญาตหรือไม่
/var/log/httpd/*.log /var/log/httpd/*/*.log {
# ... same as above
}
นี่คือเหตุผล: ฉันมีหลายโฮสต์และฉันแยกพวกเขาโดยผู้ใช้ที่ "เป็นเจ้าของ" vhosts เหล่านั้น เนื่องจากไฟล์บันทึกนั้นสามารถอ่านได้ทั่วโลกฉันจึงต้องการผูกไฟล์เข้ากับโฮมไดเร็กตอรี่ของผู้ใช้ แต่ จำกัด เฉพาะไฟล์ล็อกที่ผู้ใช้ "เป็นเจ้าของ" ซึ่งทำได้ง่ายที่สุดโดยแยกล็อกออกเป็นโฟลเดอร์ (และผูก - การติดตั้งจำเป็นต้องใช้รูปแบบนั้น) ดังนั้นฉันกำลังมองหาวิธีแก้ปัญหาในการหมุนทั้งล็อกไฟล์ภายใต้/var/log/httpd
ตลอดจนล็อกไฟล์ทั้งหมดภายใต้ไดเร็กทอรีย่อยของไดเร็กทอรีนั้น - โดยไม่ต้องแสดงรายการแต่ละไดเร็กทอรีย่อยตามชื่อ
โดยทั่วไปแล้วหน้า man ไม่ให้ข้อมูลว่ามีหลายรายการที่เป็นไปได้สำหรับกฎไวด์การ์ดหรือสำหรับเส้นทางแบบเต็มเท่านั้น ฉันใช้ logrotate เวอร์ชั่น 3.7.8-6 ซึ่งมาพร้อมกับ Debian "Squeeze" แต่ฉันคิดว่านี่ไม่ได้เฉพาะเจาะจงกับรุ่น distro หรือโปรแกรม