ขณะนี้เรากำลังอัปเกรดจาก Ubuntu 12.04 LTS เป็น 14.04 LTS บน ruby ของเราบนเซิร์ฟเวอร์แอปพลิเคชันทางรถไฟและสังเกตว่าไฟล์บันทึกไม่หมุนอีกต่อไป
ในทั้งสองเครื่องเรามีไฟล์ที่/var/app-name/config/logrotate
เป็นของผู้ใช้ unix deployer
ซึ่งมีไฟล์ logrotate ที่ถูกต้องดังนี้:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
นี่คือ symlinked ใน/etc/logrotate.d/
ไดเรกทอรีเป็นapp-name
บนเซิร์ฟเวอร์ Ubuntu 12.04 ของเราเรามี logrotate 3.7.8 ซึ่งทำงานได้ดี มันจะเข้าสู่var/app-name/log/
ไดเรกทอรีและหมุนไฟล์บันทึกทั้งหมด
แต่บนเซิร์ฟเวอร์ Ubuntu 14.04 เรามี logrotate 3.8.7 ซึ่งไม่หมุนไฟล์ล็อกสำหรับแอปพลิเคชันของเรา
เมื่อฉันดีบักผ่านsudo logrotate -d -f /etc/logrotate/.conf
ฉันได้รับผลลัพธ์ต่อไปนี้:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
ดูเหมือนว่าการเปลี่ยนแปลงนี้จะถูกเพิ่มเข้ามาสำหรับสตรีมที่วางจำหน่าย 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
หากฉันเปลี่ยนความเป็นเจ้าของไฟล์ที่เชื่อมโยงไป/var/app-name/config/logrotate
เป็นroot
แล้วมันจะเริ่มทำงานอีกครั้ง แต่เนื่องจากไฟล์นี้เป็นส่วนหนึ่งของแอปพลิเคชันของฉันและสร้างโดยกรอบการปรับใช้ capistrano ที่เราใช้ในสถานะนี้ฉันไม่ต้องการแก้ไขความเป็นเจ้าของเมื่อมันใช้งานได้ดี
ดังนั้นไฟล์กำหนดค่า symlinked แนะนำ / สนับสนุนโดย logrotate?
และถ้าเป็นเช่นนั้นมันควรจะปฏิเสธที่จะใช้ไฟล์ของฉัน (เป็นเจ้าของโดยdeployer
) ซึ่งเชื่อมโยงไปยัง/etc/logrotate.d
ไดเรกทอรีจะถูกมองว่าเป็นข้อผิดพลาด?
หรือมีวิธีอื่นที่แนะนำสำหรับการหมุนเวียนบันทึกเฉพาะแอปพลิเคชัน
(ถามด้วยunix StackExchange )