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

3
ไวยากรณ์ไฟล์กำหนดค่า logrotate - สามารถใช้สัญลักษณ์ตัวแทนหลายรายการ
เนื่องจากหน้าคนไม่ตอบคำถามของฉันและฉันไม่ต้องการบังคับวงจรการหมุนเวียนฉันจึงตัดสินใจถามคำถามที่นี่ man page สำหรับ logrotate แสดงตัวอย่างต่อไปนี้: "/var/log/httpd/access.log" /var/log/httpd/error.log { rotate 5 mail www@my.org size 100k sharedscripts postrotate /usr/bin/killall -HUP httpd endscript } ตัวอย่างทั้งหมดที่มี wildcard มีเพียงรายการเดียว ตอนนี้สิ่งที่ฉันสนใจคือไม่ว่าจะอนุญาตหรือไม่ /var/log/httpd/*.log /var/log/httpd/*/*.log { # ... same as above } นี่คือเหตุผล: ฉันมีหลายโฮสต์และฉันแยกพวกเขาโดยผู้ใช้ที่ "เป็นเจ้าของ" vhosts เหล่านั้น เนื่องจากไฟล์บันทึกนั้นสามารถอ่านได้ทั่วโลกฉันจึงต้องการผูกไฟล์เข้ากับโฮมไดเร็กตอรี่ของผู้ใช้ แต่ จำกัด เฉพาะไฟล์ล็อกที่ผู้ใช้ "เป็นเจ้าของ" ซึ่งทำได้ง่ายที่สุดโดยแยกล็อกออกเป็นโฟลเดอร์ (และผูก - การติดตั้งจำเป็นต้องใช้รูปแบบนั้น) ดังนั้นฉันกำลังมองหาวิธีแก้ปัญหาในการหมุนทั้งล็อกไฟล์ภายใต้/var/log/httpdตลอดจนล็อกไฟล์ทั้งหมดภายใต้ไดเร็กทอรีย่อยของไดเร็กทอรีนั้น …

9
เข้าสู่ระบบการหมุนของ stdout?
ฉันมีโปรแกรม Linux ที่สามารถเขียนข้อมูลไปยัง stdout และ stderr /var/logฉันมีสคริปต์เชลล์ซึ่งเปลี่ยนเส้นทางการส่งออกที่ยังแฟ้มใน (ผ่าน>>และ2>&1.) มีวิธีทำให้ไฟล์บันทึกนั้นหมุนหรือไม่ (ขนาดสูงสุดจากนั้นเปลี่ยนเป็นไฟล์อื่นเก็บเฉพาะไฟล์จำนวน จำกัด ) ฉันเห็นคำตอบสองสามข้อที่พูดเกี่ยวกับlogrotateโปรแกรมซึ่งฟังดูดี แต่พวกเขาก็ดูเหมือนจะเน้นไปที่โปรแกรมที่สร้างไฟล์บันทึกภายในและจัดการสัญญาณ HUP มีวิธีที่จะทำให้การทำงานนี้ด้วยสคริปต์เปลี่ยนเส้นทางออกพื้นฐานหรือไม่

2
Logrotate จะไม่อ่านไฟล์กำหนดค่าที่เชื่อมโยงแล้วเนื่องจากความเป็นเจ้าของที่ไม่ใช่รูท
ขณะนี้เรากำลังอัปเกรดจาก Ubuntu 12.04 LTS เป็น 14.04 LTS บน ruby ​​ของเราบนเซิร์ฟเวอร์แอปพลิเคชันทางรถไฟและสังเกตว่าไฟล์บันทึกไม่หมุนอีกต่อไป ในทั้งสองเครื่องเรามีไฟล์ที่/var/app-name/config/logrotateเป็นของผู้ใช้ unix deployerซึ่งมีไฟล์ logrotate ที่ถูกต้องดังนี้: /var/app-name/log/*.log { daily rotate 365 delaycompress compress dateext dateformat -%Y%m%d missingok copytruncate } นี่คือ symlinked ใน/etc/logrotate.d/ไดเรกทอรีเป็นapp-name บนเซิร์ฟเวอร์ Ubuntu 12.04 ของเราเรามี logrotate 3.7.8 ซึ่งทำงานได้ดี มันจะเข้าสู่var/app-name/log/ไดเรกทอรีและหมุนไฟล์บันทึกทั้งหมด แต่บนเซิร์ฟเวอร์ Ubuntu 14.04 เรามี logrotate 3.8.7 ซึ่งไม่หมุนไฟล์ล็อกสำหรับแอปพลิเคชันของเรา เมื่อฉันดีบักผ่านsudo logrotate -d -f …

1
วิธีการ logrotate ด้วย systemd?
ฉันรันแอปโหนดโดยใช้ systemd พร้อมไฟล์หน่วย สามารถดูบันทึกแอปได้โดยใช้journalctl -u example.comแต่บันทึกถูกตัดในบางจุดลบประวัติ (ซึ่งฉันต้องการสำหรับการดีบัก) ฉันจะกำหนดค่าการเข้าสู่ระบบการหมุนด้วย systemd เพื่อให้บันทึก app ของฉันได้รับการจัดเก็บไว้ในexample.com.log.1, example.com.log.2ฯลฯ ดังนั้นฉันสามารถสอบถามประวัติของ app ของฉันได้อย่างไร นี่คือไฟล์หน่วยของฉัน: ExecStart=/usr/bin/node keystone.js #Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=example.com User=user Group=user Environment=NODE_ENV=production [Install] WantedBy=multi-user.target

2
logrotate ไม่สามารถหมุนบันทึกได้รับ“ ไม่มีข้อผิดพลาดไฟล์ดังกล่าว”
logrotate ไม่สามารถหมุนบันทึกของฉัน ฉันตรวจสอบการอนุญาตของไฟล์แล้วพวกเขาก็ใช้ได้ ฉันได้ลองโดยใส่ "su root root" ในไฟล์กำหนดค่าฉันยังคงเผชิญกับปัญหาเดียวกัน กรุณาหารายละเอียดที่เกี่ยวข้องด้านล่าง: ไฟล์ logrotate.conf: /var/log/testlog { compress delaycompress dateext maxage 180 rotate 15 size 1024M start 1 rotate 15 missingok } แก้ไขข้อบกพร่องบันทึก: [ใช้ตัวเลือก "-d"] rotating pattern: /var/log/testlog 1073741824 bytes (15 rotations) empty log files are not rotated, old logs are removed considering log …


4
Error ผิดพลาด
เมื่อใช้ logrotate จาก cronjob ฉันได้รับข้อผิดพลาดนี้: error: unable to open /var/log/mylog.1 for compression ไม่มีใครรู้ว่ามันหมายถึงอะไรและฉันจะแก้ไขได้อย่างไร
3 linux  cron  logrotate 

1
logrotate: วิธีกำหนดค่าและแทนที่ค่าเริ่มต้น
ผมทดสอบการกำหนดค่า logrotate /tmpใน ฉันต้องการ เพื่อกำหนดค่านโยบายการ/tmp/*.logบันทึกเริ่มต้นสำหรับไฟล์โดยใช้ไฟล์ทดสอบการกำหนดค่าของฉัน/tmp/logrotate.conf ในการจัดการไฟล์บันทึกเฉพาะ/tmp/special.logด้วยนโยบายที่แตกต่างกันซึ่งกำหนดค่าไว้ในไฟล์ทดสอบการกำหนดค่า logrotate แยก:/tmp/logrotate.d/included แต่การตอบสนองของ logrotate ต่อการตั้งค่าของฉันคือการพูด error: /tmp/logrotate.d/included:1 duplicate log entry for /tmp/special.log ฉันควรทำอย่างไรแตกต่าง นี่คือฉัน /tmp/logrotate.conf compress missingok notifempty size 512k copytruncate rotate 2 su # here's my attempt at applying the default policy to all /tmp/*.log /tmp/*.log {} # and here I intend to …

0
บันทึกการต่อท้ายชื่อไฟล์ด้วย“ .1”
ด้วยเหตุผลบางอย่าง tomcatlogs ของเราจะถูกผนวกเข้ากับ. 1 เมื่อ logrotate ทำงาน เช่น: ไฟล์ "tcl-2013-08-16.0.log" จะกลายเป็น "tcl-2013-08-16.0.1.log" ฉันกำลังดิ้นรนเพื่อค้นหาการตั้งค่าใดที่กำลังเพิ่ม ".1" ไว้หน้าส่วน ".log" ของชื่อไฟล์ ด้านล่างนี้เป็นสำเนาของไฟล์การตั้งค่าจาก /etc/logrotate.d/: extension .log rotate 52 daily nocreate nodateext missingok notifempty compress delaycompress ด้านล่างนี้เป็น config ใน /etc/logrotate.conf: weekly rotate 52 create dateext compress delaycompress include /etc/logrotate.d สิ่งที่ฉันหายไปที่นี่? ขอบคุณ Nath
2 logrotate 

2
Logrotate จะไม่หมุนบันทึกขณะที่บอกว่าทำ
ฉันมีการกำหนดค่า logrotate ที่ทำงานได้ตามปกติจนกระทั่งในทันใดมันก็หยุดทำเช่นนั้น ฉันเดาว่ามันหยุดหมุนบันทึกของฉันหลังจากที่ฉันลบและสร้างใหม่ log โฟลเดอร์ขณะอัปเดตแอปพลิเคชันของฉัน ด้านล่างนี้เป็นส่วนที่เกี่ยวข้องของการกำหนดค่าและบันทึกการทำบันทึก /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed …

2
หน้าจอเข้าสู่ระบบดู (หมุน)
ฉันใช้เซิร์ฟเวอร์จดหมายซึ่งฉันเชื่อมต่อโดยใช้ SSH ของฉัน .bash_profile มีการกำหนดค่าเพื่อแนบเซสชัน SSH กับบางอย่าง screen เซสชั่น ตอนนี้ฉันต้องการบันทึก (เช่น syslog) พิมพ์ไปที่หน้าต่างเดียวของเซสชันหน้าจอนี้ ฉันพยายามวิ่ง tail -f /var/log/syslog แต่ผลลัพธ์จะหยุดทุกวันเวลา 6:25 น. ฉันเดาว่านั่นเป็นเวลาที่บันทึกจะหมุน ดังนั้นจึงมีวิธีพิมพ์บันทึกบนหน้าจอใช่หรือไม่

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