Error ผิดพลาด


3

เมื่อใช้ logrotate จาก cronjob ฉันได้รับข้อผิดพลาดนี้:

error: unable to open /var/log/mylog.1  for compression

ไม่มีใครรู้ว่ามันหมายถึงอะไรและฉันจะแก้ไขได้อย่างไร

คำตอบ:


2

หมายความว่า/var/log/mylog.1ไม่มีอยู่หรือสิทธิ์ / ความเป็นเจ้าของไม่อนุญาตให้บีบอัดไฟล์นั้น ตรวจสอบสิทธิ์ / ls -l /var/log/mylog*เจ้าของด้วย


3

คุณจะต้องได้รับข้อมูลเพิ่มเติม

มีไฟล์อยู่หรือไม่และผู้ใช้ cron มีสิทธิ์อ่านมันหรือไม่:

ls -l /var/log/mylog.1

ดูว่า logrotate สามารถให้ข้อมูลเพิ่มเติมได้หรือไม่ มันควรจะมีธง verbose คุณสามารถเปิดด้วย '-v'


1

หากไฟล์มีอยู่และการอนุญาตไม่เป็นไปตามนั้นสาเหตุอาจเป็นได้ว่าไฟล์นั้นเปิดอยู่เมื่อคุณพยายามบีบอัดไฟล์ เพื่อหลีกเลี่ยงปัญหาดังกล่าวคุณสามารถเพิ่มบรรทัดต่อไปนี้ใน/etc/logrotate.conf:

delaycompress

0

ฉันเพิ่งพบข้อผิดพลาดนี้เอง สรุป: มันเป็นข้อขัดแย้งระหว่างlogrotateและสคริปต์ postrotate ที่ฉันเขียนซึ่งในบางกรณีlogrotateสคริปต์ของฉันจะลบไฟล์บันทึกที่เพิ่งย้ายซึ่งถูกบีบอัด แม้ว่าคุณจะคิดว่าlogrotateจะบีบอัดไฟล์แล้วเรียกใช้สคริปต์หลังการหมุน แต่จริงๆแล้วมันจะดำเนินการตามลำดับอื่น ดังนั้นข้อความผิดพลาดนี้

เนื่องจากlogrotateจัดการไฟล์โดยตรงที่คำถามแสดงว่าหายไปฉันไม่สามารถนึกถึงสิ่งอื่นที่อาจทำให้เกิดปัญหานี้ได้เว้นแต่จะมีบางสิ่งที่แปลกจริง ๆ เกี่ยวกับการอนุญาตไฟล์ (เช่นเขียนได้และอ่านไม่ได้)

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