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

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

5
Logrotate ไม่ทำงาน
ฉันกำลังพยายามให้ logrotate ทำงานบน VPS ของฉันเพื่อหมุนไฟล์ apache ของฉันทุกสัปดาห์ ปัจจุบันเนื้อหาของไฟล์กำหนดค่า apache2 เป็นเช่นนี้ "/var/www/user/site.com/logs/*.log" { weekly missingok rotate 8 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript } ฉันทิ้งไว้สองสัปดาห์แล้วและไม่มีอะไรเปลี่ยนแปลงเท่าที่ฉันจะบอกได้ เมื่อฉันจำลองจากบรรทัดคำสั่งฉันได้รับผลลัพธ์ต่อไปนี้ user@geneva:/var/lib/logrotate$ /usr/sbin/logrotate -d /etc/logrotate.d/apache2 reading config file /etc/logrotate.d/apache2 reading config info for "/var/www/user/site.com/logs/*.log" Handling 1 logs rotating …
18 logrotate 

5
Logrotate: การหมุนไฟล์ที่ไม่ใช่บันทึกหรือไม่
ฉันมีสคริปต์สำรองที่บีบอัดไฟล์และไดเรกทอรีต่างๆและสร้างคลัง. tgz ชื่อไฟล์เช่น ... backup_2010-10-28.tar.gz backup_2010-10-29.tar.gz backup_2010-10-30.tar.gz backup_2010-10-31.tar.gz backup_2010-11-01.tar.gz ฉันต้องการจัดการไฟล์เหล่านี้ดังนั้นจึงมีเพียงการสำรองข้อมูล 5 ครั้งล่าสุดเท่านั้นเนื่องจากไฟล์เก่าถูกลบ ฉันสามารถใช้ logrotate เพื่อทำสิ่งนี้ได้หรือไม่? พวกเขาไม่ได้ล็อกไฟล์และถูกบีบอัดแล้ว พวกเขาอยู่ใน / root และไม่อยู่ใน / var / log - ฉันยังสามารถใช้มันได้หรือไม่ ขอบคุณ

5
rsyslog กับ logrotate: โหลด rsyslog เทียบกับ copytruncate
ฉันทำงานกับ Ubuntu 14 พร้อมด้วย rsyslog และยูทิลิตี logrotate ที่เป็นค่าเริ่มต้น ในการตั้งค่าเริ่มต้น rsyslog logrotate /etc/logrotate.d/rsyslogฉันเห็นดังต่อไปนี้: /var/log/syslog { rotate 7 daily missingok notifempty delaycompress compress postrotate reload rsyslog >/dev/null 2>&1 || true endscript } จากสิ่งที่ฉันเข้าใจขอแนะนำให้ใช้ copytruncate ในสถานการณ์ logrotate ทั้งหมดเนื่องจากไม่ย้ายบันทึกปัจจุบัน แต่ตัดทอนบันทึกเพื่อให้กระบวนการใด ๆ ที่มีตัวจัดการไฟล์เปิดสามารถเขียนต่อไปได้ ดังนั้นการกำหนดค่าเริ่มต้นทำไมถึงใช้คุณสมบัติโหลด rsyslog แทน?

3
รูปแบบที่ต้องการของชื่อไฟล์ซึ่งรวมถึงการประทับเวลา
ในขณะที่เราทุกคนรู้ว่า "unix" สามารถมีอะไรในไฟล์ยกเว้น '/' และ '\ 0', sysadmins อย่างไรก็ตามมักจะมีการตั้งค่าที่มีขนาดเล็กมากส่วนใหญ่เนื่องจากไม่มีช่องว่างที่ชอบเป็นอินพุต ... และสิ่งต่าง ๆ ที่มี ความหมายพิเศษสำหรับ ':' และ '@' ในหมู่คนอื่น ๆ เมื่อเร็ว ๆ นี้ฉันเคยเห็นกรณีอื่นที่ใช้การประทับเวลาในชื่อไฟล์และหลังจากเล่นด้วยรูปแบบที่แตกต่างกันเล็กน้อยเพื่อให้ "ดีขึ้น" ฉันคิดว่าฉันพยายามหา "แนวปฏิบัติที่ดีที่สุด" ไม่พบสิ่งที่ฉันคิด ฉันแค่ถามที่นี่และดูว่าผู้คนคิดอย่างไร โซลูชัน "ทั่วไป" ที่เป็นไปได้ (p = คำนำหน้าและ s = คำต่อท้าย): syslog / logrotate / DNS เช่นเดียวกับรูปแบบ: p-%Y%m%d-suffix = prefix-20110719-s p-%Y%m%d%H%M-suffix = prefix-201107191732-s p-%Y%m%d%H%M%S-suffix = …

2
Logrotate: วิธีเข้าถึงไฟล์เอาต์พุตใน postrotate
ฉันหมุนNginxบันทึกทุกวัน (พร้อมdateext) หลังจากการหมุนฉันต้องการแยกไฟล์สำหรับวันที่เพิ่งผ่านไปและรวบรวมอีเมลที่มีจำนวนข้อผิดพลาดที่ส่งคืนโดยเซิร์ฟเวอร์ Nginx ฉันจะเข้าถึงไฟล์เอาต์พุตในส่วน postrotate / ปลายคำบรรยายของได้logrotateอย่างไร
15 logrotate 

3
logrotate จะทำงานเมื่อไหร่ & บน Ubuntu 10.04?
ฉันยังใหม่กับการดูแลระบบและมีคำถามสองสามข้อ: โพรซีเดอร์ logrotate อยู่ที่ไหนและอย่างไร logfiles ที่หมุน "แบบรายวัน" ของฉันถูกหมุนเวลาเท่าไร คำสั่ง prerotate รันสำหรับแต่ละไฟล์บันทึกที่ตรงกับรายการ * .log หรือไม่ ขอขอบคุณ
15 ubuntu  logrotate 

1
Linux: วิธีการบังคับใช้สิทธิ์เฉพาะในบันทึกที่สร้างขึ้นใหม่ซึ่งสร้างขึ้นโดยการหมุนเวียนบันทึก
ฉันสังเกตว่าบันทึกเมลที่กำลังถูกสร้าง/var/logกำลังถูกสร้างขึ้นและเป็นเจ้าของโดย root (ผู้ใช้และกลุ่ม) ฉันได้เขียนเช็ค Nagios ซึ่งจะตรวจสอบบันทึกและเพื่อให้ผู้ใช้ Nagios เข้าถึงได้ฉันให้otherสิทธิ์การอ่านแก่กลุ่มนั่นคือ: chmod o+r /var/log/maillog ตอนนี้เมื่อฉันคิดเกี่ยวกับมันเป็นไฟล์บันทึกเพียงไฟล์เดียวเมื่อไฟล์บันทึกจะถูกเติมกลไกการหมุนของล็อกจะเปลี่ยนชื่อไฟล์นี้และเปิดไฟล์ใหม่ แต่maillogไฟล์ใหม่จะไม่มีไฟล์read writeที่ฉันอนุญาต ดังนั้นคำถามของฉันคือฉันจะแน่ใจได้อย่างไรว่ากลไกการหมุนเวียนบันทึกจะสร้างไฟล์ mailllog ใหม่ทั้งหมดที่มีสิทธิ์ที่เหมาะสมสำหรับผู้ใช้ Nagios ขอบคุณล่วงหน้า

1
ทำไม logrotate ทำให้ Apache ต้องแยกข้อบกพร่องในแต่ละครั้ง
ทุกครั้งที่logrotateรัน Apache / 2.4.7 (Ubuntu) จะพบกับข้อผิดพลาดของ seg และไม่รีสตาร์ท: [Wed Sep 10 06:35:54.266018 2014] [mpm_event:notice] [pid 20599:tid 140630283466624] AH00493: SIGUSR1 received. Doing graceful restart [Wed Sep 10 06:35:54.885118 2014] [core:notice] [pid 20599] AH00060: seg fault or similar nasty error detected in the parent process สคริปต์ logrotate ของ apache ของฉันดูเหมือนว่า: /var/log/apache2/*.log { …

4
MySQL ไม่บันทึกข้อผิดพลาดไปยังไฟล์ใหม่หลังจากหมุน?
แก้ไขปัญหาได้แล้ว แต่ฉันกำลังเขียนเพื่ออ้างอิงในอนาคต /root/.my.cnf [mysqladmin] user = root password = pa$$w0rd /etc/logrotate.d/mysql /var/log/mysql-slow.log /var/log/mysqld.log { daily rotate 7 dateext compress missingok #notifempty sharedscripts create 644 mysql mysql postrotate /usr/bin/mysqladmin flush-logs endscript } logrotate ทำงานได้ดีเมื่อทำงานจากบรรทัดคำสั่ง: # logrotate -v -f /etc/logrotate.d/mysql แต่มันไม่ทำงานเมื่อทำงานจาก cron เวลา 4:00 น. ไฟล์บันทึกถูกหมุน แต่ MySQL ไม่บันทึกข้อผิดพลาดไปยังไฟล์ที่สร้างขึ้นใหม่: -rw-r--r-- 1 mysql …
14 mysql  logrotate 

5
การทำ grepping ผ่านไฟล์บันทึก. gz
มีเปลือกท่อเวทย์มนตร์ซึ่งจะช่วยให้สามารถ grep ผ่านกลุ่มของไฟล์บันทึก. gz ได้โดยไม่จำเป็นต้องแตกไฟล์เหล่านั้นอยู่ที่ไหน? ไฟล์. gz เป็นบันทึก Apache ซึ่งเป็นผลมาจากการหมุนบันทึก ฉันต้องการตรวจสอบอย่างรวดเร็วว่ามีการเข้าถึง URIs บางรายการในอดีตอย่างไร

2
Logrotate ไม่ได้ลบบันทึกเก่า ๆ
ด้วยเหตุผลบางอย่างไฟล์บันทึกเก่าจะไม่ถูกลบ ตัวอย่างด้วยอาปาเช่ ไฟล์ conf บอกว่าอะไร: $ cat /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly missingok rotate 2 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript } เนื้อหา (ครอบตัด) ของโฟลเดอร์บันทึก: # ls /var/log/apache2/ access.log error.log.26.gz other_vhosts_access.log.20.gz access-ssl.log.14.gz access.log.1 error.log.27.gz other_vhosts_access.log.21.gz access-ssl.log.15.gz access.log.2.gz error.log.28.gz other_vhosts_access.log.22.gz access-ssl.log.16.gz access.log.3.gz error.log.2.gz other_vhosts_access.log.23.gz …
14 linux  logrotate 

2
ลบไฟล์ด้วย logrotate
เป็นไปได้หรือไม่ที่จะลบไฟล์บันทึกในไดเรกทอรีโดยใช้ logrotate โดยไม่มีการหมุนเวียนไฟล์ เรามีแอพที่สร้างบันทึกในรูปแบบต่อไปนี้: app.log.DD_MM_YYYY ฉันไม่ประสบความสำเร็จกับ logrotate ที่มีการกำหนดค่าต่อไปนี้: /opt/log/app/app.log.* { rotate 0 missingok nomail } ล็อกการหมุนสามารถทำสิ่งนี้ได้หรือฉันควรเขียนสคริปต์และวางลงใน cron? ดีที่สุด - ชาวยูเนี่ยน
13 linux  logrotate 

5
Mongodb - วิธีที่เหมาะสมในการหมุนเวียนบันทึก
Mongo docsบอกว่าฉันทำได้: ใช้สัญญาณ -SIGUSR1 และรับบันทึกการเปลี่ยนชื่อเก่าและสวิตช์ปัจจุบัน ใช้ logrotate จากระบบปฏิบัติการ ฉันต้องการความสามารถในการ logrotate ของระบบปฏิบัติการที่จะ zip ไฟล์เก่าและลบเก่าที่สุด แต่ไม่เห็นวิธีที่จะบอกกระบวนการ mongod เพื่อเปลี่ยนบันทึกปัจจุบันนอกเหนือจากการส่ง SIGUSR1 ดังนั้นฉันจึงเขียน /var/log/mongodb/*.log { daily rotate 5 compress dateext missingok notifempty sharedscripts postrotate /usr/bin/killall -SIGUSR1 mongod /usr/bin/killall -SIGUSR1 mongos endscript } ถึง /etc/logrotate.d/mongo และตอนนี้รับ logfiles ที่มีชื่อดีจาก logrotate และ logfiles ว่างเปล่าเช่นmongodb.log.2013-09-18T23-49-44ร่องรอยของการสลับ SIGUSR1 วิธีการกำจัดหลัง?

4
วิธีที่เหมาะสมในการหมุนบันทึก Nginx
ฉันต้องการที่จะบรรลุการหมุนของบันทึก nginx ที่: จะทำงานโดยไม่มีซอฟต์แวร์พิเศษใด ๆ (เช่น - ดีที่สุดหากไม่มี "logrotate") จะสร้างไฟล์ที่หมุนด้วยชื่อตามวันที่ วิธีที่ดีที่สุดคือ PostgreSQL มี - นั่นคือในตัวแปร config ของ log_filename ฉันสามารถระบุรูปแบบ strftime-style% Y-% m-% d และมันจะเปลี่ยนวันที่เข้าสู่ระบบ (หรือเวลา) โดยอัตโนมัติ อีกวิธีหนึ่งจาก Apache - ส่งบันทึกผ่านไพพ์ไปยังโปรแกรม rotatelogs เท่าที่ฉันสามารถค้นหา - ไม่มีวิธีการดังกล่าวอยู่ สิ่งที่ฉันทำได้คือใช้ตัวเลือก logrotate กับ dateext แต่มีชุดข้อเสียของตัวเองและฉันอยากใช้สิ่งที่ทำงานเช่น | rotatelogs หรือ log_filename ใน PostgreSQL

2
ฉันจะหมุนล็อกไฟล์จำนวนมากเป็นไดเรกทอรีย่อยที่แตกต่างกันต่อการหมุนได้อย่างไร
ฉันมีไดเรกทอรีที่มีไฟล์บันทึกมากมายซึ่งทั้งหมดนี้ต้องการหมุนทุกวัน สำหรับวัตถุประสงค์ขององค์กรฉันต้องการย้ายบันทึกที่หมุนแล้วไปยังไดเรกทอรีอื่น (หรือไดเรกทอรีย่อย) ที่ตั้งชื่อตามวันที่โดยเก็บรักษาสัปดาห์สุดท้ายของบันทึก ฉันสามารถใช้ logrotate เพื่อให้บรรลุผลส่วนใหญ่โดย roatating ไฟล์ในสถานที่หรือแม้แต่ย้ายพวกเขาไปยังไดเรกทอรีที่แตกต่างกันโดยใช้olddirคำสั่ง แต่ฉันมีปัญหาในการหาวิธีการแก้ปัญหาในการสร้างไดเรกทอรีย่อยแต่ละรายการต่อการหมุน ฉันจะทำสิ่งนี้ได้อย่างไร: Logs to rotate: /var/log/example/* Desired target directories (keeping a week): /var/log/example/20121006/* [ ... ] /var/log/example/20121012/*

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