คำถามติดแท็ก logrotate

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

3
การบันทึกไฟล์ในไดเรกทอรีและไดเรกทอรีย่อย
เป็นไปได้หรือไม่ที่logrotateจะต้องพิจารณา logfiles ในไดเรกทอรีและไดเรกทอรีย่อยทั้งหมด? (เช่นไม่มีรายการไดเรกทอรีย่อยอย่างชัดเจน)



4
logrotate ทุกวันและขนาด?
หากมีการระบุการกำหนดค่า logrotate ด้วยพารามิเตอร์ "ขนาด" และ "รายวัน" สิ่งใดที่จะมาก่อน เอกสารนี้อยู่ที่ไหน ฉันต้องการให้การหมุนเหล่านี้เกิดขึ้นเป็นการดำเนินการแบบบูลหรือเช่นถ้าบันทึกมีอายุหนึ่งวันพวกเขาจะถูกหมุนหรือถ้าพวกเขามีขนาดใหญ่กว่าขนาดที่กำหนดพวกเขาก็จะได้รับการหมุนด้วย อย่างไรก็ตามขณะนี้ logrotate ใช้คำสั่ง "ขนาด" เท่านั้นและดูเหมือนจะไม่สนใจคำสั่ง "รายวัน" มีการตั้งค่า Logrotate ให้ทำงานทุก ๆ ชั่วโมง ระบบปฏิบัติการคือ linux, Red Hat และ Debian Derivatives นอกจากนี้ฉันกำลังระบุ "รายวัน" ก่อนจากนั้น "ขนาด" จากจุดเริ่มต้นของไฟล์ ไม่แน่ใจว่าคำสั่งซื้อมีความสำคัญหรือไม่ แต่ไม่ว่าในกรณีใดต้องมีลำดับมาก่อนในไฟล์ config ขอบคุณ!
40 logrotate 

3
เมื่อใดที่จะใช้ตัวเลือกการหน่วงเวลาการบีบอัดใน logrotate
หน้าคนlogrotateพูดว่า: It can be used when some program cannot be told to close its logfile and thus might continue writing to the previous log file for some time. ฉันสับสนกับสิ่งนี้ หากโปรแกรมไม่สามารถบอกว่าจะปิด logfile ของมันก็จะยังคงที่จะเขียนตลอดไปไม่ได้สำหรับบางครั้ง หากการบีบอัดถูกเลื่อนออกไปเป็นรอบการหมุนรอบถัดไปโปรแกรมจะยังคงเขียนไปยังไฟล์นั้นแม้หลังจากรอบการหมุนรอบถัดไป การเลื่อนการแก้ไขปัญหาเป็นอย่างไร ความเข้าใจของฉันคือสิ่งที่copytruncateควรใช้เมื่อโปรแกรมไม่สามารถบอกให้ปิดล็อกไฟล์ ฉันทราบว่าข้อมูลบางอย่างที่เขียนไปยังล็อกไฟล์หายไปเมื่อกำลังดำเนินการคัดลอก ฉันดูไฟล์ logrotate เพื่อหา couchdb และมีทั้งตัวเลือกcopytruncateและdelaycompressตัวเลือก /usr/local/couchdb-1.0.1/var/log/couchdb/*.log { weekly rotate 10 copytruncate delaycompress compress notifempty …
33 logrotate 

3
เทียบเท่ากับ LogRotate สำหรับ Windows?
เรามีไฟล์บันทึกขนาดใหญ่ที่เขียนโดยแอปพลิเคชันของผู้ขาย สมมติว่าผู้ขายไม่ทำอะไรที่เราถาม มีวิธีการหมุนล็อกไฟล์นั้นหรือไม่? เรากำลังดูการเขียนประมาณ 300 MB ต่อชั่วโมง - ฉันค่อนข้างจะรู้ตัวว่ามันเป็น 10 MB และปล่อยให้สิ่งที่เก่ากว่าวันหรือมากกว่า 1,000 ไฟล์ตกหน้าผา (ฉันรู้ว่าฉันรู้ว่าเป็นไปได้ที่ซ้ำกันของคุณจะหมุนบันทึก apache บน windows โดยไม่รบกวนบริการได้อย่างไร ) Aha - บันทึกของ Chomp ตาย แต่การค้นหาสำหรับ "chomp logrotate" นำฉันไปของเว็บไซต์ใหม่ ฉันจะลองในวันพรุ่งนี้และตอบกลับถ้าฉันชอบ ฉันยังอยากได้ยินเกี่ยวกับซอฟต์แวร์ที่คนอื่นใช้ซึ่งทำงานได้กับสิ่งนี้

2
logrotate จัดการกับ“ ทุกวัน” ได้อย่างไร?
ตัดสินโดยการประทับเวลาในระบบของฉัน logrotate ทำการหมุนบันทึกประจำวันเมื่อ logrotate ทำงานโดย cron อย่างไรก็ตามถ้าฉันใช้มันเร็วกว่านั้นมันจะไม่หมุนไฟล์ logrotate จะรู้ได้อย่างไรว่าควรจะหมุนมันหรือไม่มันจะเก็บประวัติหรืออาจจะใช้การประทับเวลา?
30 linux  logrotate 

6
Logrotate จะบันทึกบันทึกของตัวเองอยู่ที่ไหน
ฉันlogrotateทำงานในเครื่อง EC2 AWS ที่หมุนบันทึก Apache เมื่อบรรจุแล้วบันทึก Apache จะถูกบันทึกลงใน AWS S3 ผ่าน s3fs ปัญหาคือเมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่าฉันไม่มีบันทึกการหมุน ใน S3 ฉันมีบันทึกเก่าตั้งแต่วันที่ 48-> 60 แต่ที่ 1-> 47 ไม่ปรากฏขึ้น คำถามของฉันคือ: ที่ไหน logrotate บันทึกบันทึกของตัวเอง? เป็นไปได้ว่าฉันมีปัญหาบางอย่างกับ s3fs แต่ฉันต้องรู้ก่อนที่จะทำอะไร ฉันพยายามค้นหาไฟล์ที่ไหนสักแห่ง แต่ฉันหามันไม่เจอ ความคิดใด ๆ
25 logrotate 

3
logrotate ไม่หมุนบันทึก
ฉันมีการกำหนดค่า logrotate นี้และฉันใช้งานบน Ubuntu 10.04 /var/log/mysql/mysql-slow.log { daily rotate 3 compress notifempty missingok create 660 mysql adm postrotate if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript } ฉันใส่มันลงใน /etc/logrotate.d เมื่อวานนี้และวันนี้บันทึกไม่ได้หมุน ด้านล่างนี้คือสิ่งที่ฉันได้ทำ: ฉันยืนยันว่าบันทึกนั้นอยู่ใน /var/log/mysql/mysql-slow.log บรรทัด mysqladmin ทำงานได้ดีเมื่อทำงานในฐานะรูท mysql สามารถเขียนไปยัง mysql-slow.log เมื่อฉันทำสิ่งนี้: $ logrotate -d -f …
24 logrotate 


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

3
บันทึกและเปิดไฟล์
logrotate จัดการกับไฟล์ที่เปิดอย่างไร สามารถหมุนไฟล์หมุนเวียนในกระบวนการที่เปิดอยู่ได้หรือไม่
21 linux  logrotate 

7
ตรวจสอบบันทึกอย่างต่อเนื่องด้วยหางที่หมุนเป็นครั้งคราว
เราใช้ส่วนท้ายเพื่อตรวจสอบบันทึกหลาย ๆ ชุดอย่างต่อเนื่อง แต่เมื่อมีการหมุนบันทึกส่วนท้ายสำหรับไฟล์นั้นจะหยุด เท่าที่ฉันเข้าใจปัญหาคือเมื่อบันทึกการหมุนแล้วจะมีไฟล์ใหม่ที่สร้างขึ้นและกระบวนการ tail run ไม่ทราบอะไรเกี่ยวกับการจัดการไฟล์ใหม่

3
การเข้าสู่ระบบ nginx เพื่อ access.log.1 แทนที่จะเป็น access.log, logrotate ล้มเหลว?
ฉันมีอินสแตนซ์ nginx ที่ตั้งค่าให้เข้าสู่การเข้าถึง /var/log/nginx/access.log และข้อผิดพลาดในการ /var/log/nginx/errors.log แต่ทันทีที่ logrotate ทำงานในแต่ละสัปดาห์ไฟล์จะถูกย้ายไปที่ * .log.1 และไฟล์ * .log ใหม่ถูกสร้างขึ้น แต่ nginx ยังคงเข้าสู่ระบบไฟล์ log.1 แทนไฟล์. log ใหม่ (และไม่มีอะไรได้รับ gzipped) ครั้งแรกที่ฉันสังเกตเห็นว่ามันเป็นเวลา 3 สัปดาห์นับตั้งแต่การหมุนบันทึกและบันทึกเริ่มมีขนาดใหญ่มาก การเรียกใช้kill -HUP `cat /run/nginx.pid`nginx เริ่มต้นการบันทึกลงในตำแหน่งที่ถูกต้องอีกครั้ง แต่ปัญหาเริ่มขึ้นอีกครั้งในสัปดาห์หน้า เหตุผลที่สำคัญกว่านี้น่าผิดหวังคือฉันมีบันทึกที่ตั้งให้อัพโหลดไปยัง Loggly ผ่านทาง rsyslog และเมื่อ nginx หยุดการบันทึกลงในไฟล์ที่ฉันมีการโพล rsyslog แล้วสิ่งต่างๆก็หยุดอัพโหลดและฉันไม่ได้รับการเตือนใด ๆ ฉันสงสัยว่ามีบางอย่างที่เกี่ยวข้องกับการรีสตาร์ท nginx หรือโหลดการกำหนดค่าใหม่เพราะมันไม่ได้เริ่มจนกว่าฉันจะทำการเปลี่ยนแปลงการกำหนดค่าและโหลดการตั้งค่าใหม่ในแบบที่ฉันคิดว่าเป็นเรื่องปกติ ฉันพยายามเรียกใช้kill -USR1 `cat /run/nginx.pid`แต่ไฟล์ยังคงได้รับการบันทึกลงในตำแหน่งที่ไม่ถูกต้องจนกว่าฉันจะรันkill …

1
วิธีการหมุนบันทึกตามช่วงเวลาเว้นแต่บันทึกเกินขนาดที่กำหนด?
จาก man page ของ logrotate: MinSize ขนาด ไฟล์เข้าสู่ระบบจะหมุนเมื่อพวกเขาเติบโตมีขนาดใหญ่กว่าขนาดไบต์ แต่ไม่ก่อนที่ช่วงเวลาที่กำหนดนอกจากนี้ (รายวันรายสัปดาห์รายเดือนหรือรายปี) ตัวเลือกขนาดที่เกี่ยวข้องนั้นคล้ายกันยกเว้นเป็นเอกสิทธิ์เฉพาะบุคคลกับตัวเลือกช่วงเวลาและทำให้ไฟล์บันทึกถูกหมุนโดยไม่คำนึงถึงเวลาการหมุนครั้งล่าสุด เมื่อใช้ minsize ทั้งขนาดและการประทับเวลาของไฟล์บันทึกจะถูกพิจารณา ขนาด ขนาด ไฟล์เข้าสู่ระบบจะหมุนเมื่อพวกเขาเติบโตมีขนาดใหญ่กว่าขนาดไบต์ หากขนาดตามด้วย k ขนาดจะถือว่าเป็นกิโลไบต์ หากใช้ M ขนาดจะเป็นเมกะไบต์และหากใช้ G จะมีขนาดเป็นกิกะไบต์ ดังนั้นขนาด 100, ขนาด 100k, ขนาด 100M และขนาด 100Gare ใช้ได้ทั้งหมด ผมตั้งขนาดเป็น5Mและช่วงเวลาที่เป็นรายสัปดาห์ความคิดที่บันทึกจะได้รับการหมุนเป็นประจำทุกสัปดาห์และการหมุนเพิ่มเติมจะเกิดขึ้นถ้าขนาดของบันทึกเกิน 5M แต่สิ่งที่เกิดขึ้นคือบันทึกไม่ได้หมุนจนกว่าจะเกิน 5M ซึ่งน่าจะเป็นสิ่งที่ขนาดเล็กควรทำ ฉันตีความคู่มือผิดหรือเปล่า? ฉันจะรับการบันทึกเพื่อหมุนเป็นรายสัปดาห์และถ้าเกิน 5M ได้อย่างไร แก้ไข: ฉันไม่แน่ใจว่าข้อมูลต่อไปนี้เกี่ยวข้องหรือไม่ แต่เพื่อเสริม: ฉันใช้ rsyslog เพื่อทำการบันทึกหลักสำหรับข้อความ, ปลอดภัย, …

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