Score:0

Logrotate ไม่ได้เขียนไปยังไฟล์ .log ใหม่

ธง jp

ฉันมีบริการ systemd แบบกำหนดเอง 4 รายการที่เขียนถึงการเข้าสู่ระบบแบบกำหนดเอง /var/log/. ฉันตั้งค่า เข้าสู่ระบบ ไฟล์ config แต่ไม่ได้เขียนบันทึกล่าสุด มันยังคงเขียนถึงคนเก่า .log.1 ไฟล์. ตัวใหม่อยู่ สร้างเพียงแค่ไม่มีข้อมูล

นี่คือการกำหนดค่า logrotate ของฉัน:

/var/log/dealer*.log {
        รายวัน
        หายไป
        หมุน 7
        การบีบอัดล่าช้า
        การแจ้งเตือน
        su ราก
        หลังการหมุน
        /bin/systemctl รีโหลดตัวแทนจำหน่าย*.service > /dev/null 2>/dev/null || จริง
        ลงท้าย
        สร้างรูท 0644

}

ไฟล์บันทึกใหม่ล่าสุดว่างเปล่า:

-rw-r--r-- 1 รูทรูท 0 ก.ค. 55 11:39 DealerF2f.log
-rw-r--r-- 1 รูทรูท 0 ก.ค. 55 11:39 DealerOutbound.log
-rw-r--r-- 1 รูทรูท 0 ก.ค. 55 11:39 DealerTimeout.log
-rw-r--r-- 1 รูทรูท 0 ก.ค. 55 11:39 ตัวแทนจำหน่าย Web.log

มันยังคงเขียนถึง .log.1:

-rw-r--r-- 1 รูทรูท 36M ก.ค. 55 12:52 dealerOutbound.log.1
-rw-r--r-- 1 รูทรูท 9.2M ก.ค. 55 12:52 ตัวแทนจำหน่ายF2f.log.1
-rw-r--r-- 1 รูทรูท 19M ก.ค. 55 12:52 ตัวแทนจำหน่ายWeb.log.1
-rw-r--r-- 1 รูทรูท 171M ก.ค. 55 12:52 dealerTimeout.log.1
Score:0
ธง it

โดยทั่วไปแล้วฉันเห็นสิ่งนี้เมื่อกระบวนการยังคงเปิดไฟล์อยู่ - กระบวนการนั้นจะยังคงเขียนไปยังไฟล์เก่าจนกว่ากระบวนการจะเริ่มต้นใหม่

เดิมพันของฉันคือถ้าคุณทำการรีสตาร์ทแทนการโหลดซ้ำ มันจะทำงานตามที่คาดไว้

หากคุณไม่สามารถเริ่มกระบวนการใหม่ได้ทั้งหมด ให้มองหาตัวเลือก copytruncate แทนสคริปต์หลังการหมุน

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

DevOpsSauce avatar
jp flag
ฉันพยายามหลีกเลี่ยงการรีสตาร์ททั้งหมดเนื่องจาก `ExecStopPost` ของฉันเรียกสคริปต์ทุบตีที่ส่งอีเมล อย่างไรก็ตาม การใช้ copytruncate และการลบส่วน postrotate เป็นสิ่งที่ฉันต้องการ มันสร้างบันทึกใหม่และเริ่มเขียนอย่างถูกต้อง ขอบคุณมาก.
Ginnungagap avatar
gu flag
`copytruncate` เป็นทางเลือกสุดท้ายเนื่องจากการออกแบบมีข้อบกพร่อง (เนื่องจากเป็นสิ่งที่ดีที่สุดที่สามารถทำได้ตามข้อกำหนด) บริการควรสามารถรองรับการหมุนไฟล์บันทึกได้อย่างถูกต้อง

โพสต์คำตอบ

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