ทำไมเราควรใช้การสร้างและคัดลอกการตัดกันด้วยกัน?


40

Geek ที่สิ่งlogrotateมีตัวอย่างเกี่ยวกับ copytruncateจะคัดลอกและตัดทอนไฟล์บันทึกดั้งเดิม

ถ้าอย่างนั้นทำไมเราถึงควรใช้create? ไฟล์บันทึกดั้งเดิมยังไม่ถูกลบ

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

คำถามอื่นคือการใช้maxage 100คืออะไร? rotate 4สั่งจะลบไฟล์บันทึกเก่าหลังจาก 4 หมุน


4
ใช่มันไม่สมเหตุสมผลและman logrotateยังพูดอย่างนั้น: " copytruncate : [... ] เมื่อใช้ตัวเลือกนี้ตัวเลือกการสร้างจะไม่มีผลใด ๆ เนื่องจากไฟล์บันทึกเก่ายังคงอยู่"
Ulrich Schwarz

1
maxage 100จะลบไฟล์ที่ถูกหมุนเมื่อมันมีอายุเกิน 100 วันและไฟล์ปัจจุบันถูกหมุน แม้ว่าจะมี4ไฟล์ที่หมุนน้อยกว่าก็ตาม
Lutz Prechelt

คำตอบ:


57

นั่นอาจเป็นข้อผิดพลาดพบได้ในตัวอย่างเดียวในบทช่วยสอนนั้น ตัวอย่างอื่น ๆ ทั้งหมดcopytruncateไม่มีcreateตัวเลือก นอกจากนี้logrotate หน้าคนระบุว่ามันจะถูกละเว้นจริง :

copytruncate

ตัดทอนไฟล์บันทึกดั้งเดิมให้มีขนาดเท่ากับศูนย์หลังจากสร้างสำเนาแทนการย้ายไฟล์บันทึกเก่าและเลือกสร้างไฟล์ใหม่ สามารถใช้เมื่อบางโปรแกรมไม่สามารถบอกให้ปิด logfile และอาจทำการเขียนต่อท้ายไฟล์บันทึกการทำงานก่อนหน้านี้ โปรดทราบว่ามีการแบ่งเวลาเล็กน้อยระหว่างการคัดลอกไฟล์และตัดทอนดังนั้นข้อมูลการบันทึกบางอย่างอาจสูญหาย เมื่อใช้ตัวเลือกนี้ตัวเลือกการสร้างจะไม่มีผลเนื่องจากไฟล์บันทึกเก่ายังคงอยู่


เกี่ยวกับmaxageฉันคิดว่ามันจะมีประโยชน์สำหรับตัวอย่างสำหรับ logfiles ซึ่งสามารถว่างเปล่าสำหรับรอบระยะเวลาการหมุนไม่กี่ (วัน / สัปดาห์ / เดือน) - ถ้าคุณใช้notifemptylogfile ที่ว่างเปล่าจะไม่ถูกหมุนดังนั้นคุณสามารถมีไฟล์หมุนเก่าเกินไป .

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