เทียบเท่าของ logrotate บน OSX


52

คือlogrotateหลบซ่อนตัวอยู่ที่ไหนสักแห่งใน OSX หรือมีเทียบเท่า? /usr/sbinมันไม่ได้อยู่ใน


ฉันสังเกตเห็นว่ามี newsyslog แต่ก็ไม่เหมือนกันและต้องการรูท
Steve Bennett

ฉันสามารถ portrotate ได้ฉันสงสัย
Tom O'Connor

ตรวจสอบ / etc / เป็นระยะฉันเชื่อว่าการหมุนบันทึกเป็นค่าเริ่มต้นที่ใช้เป็นชุดของเชลล์สคริปต์ในนั้น ดูที่ newsyslog (/etc/newsyslog.d และ man page) เพื่อดูวิธีการทำตามขนาดไฟล์
malcolmpdx

ขอบคุณสำหรับเคล็ดลับ - แน่นอนมีสคริปต์ใน / etc / periodic
Steve Bennett

@SteveBennett คนอื่นจะได้รับป้าย "Critic" ของพวกเขาอย่างไร บางคนอยู่ที่นี่เพื่อดูตราและชื่อเสียงเท่านั้นคุณไม่รู้หรือไม่
มาร์คฟิชเชอ

คำตอบ:


23

จากคำตอบของ Brian Armstrong นี่คือบางสิ่งที่มีคำอธิบายเพิ่มเติมและการแก้ไขเล็กน้อย สิ่งนี้จัดการบันทึกที่สร้างขึ้นโดย postgres บน OSX ที่ติดตั้งโดย Homebrew ตั้งอยู่ที่/etc/newsyslog.d/postgresql.conf:

# logfilename                           [owner:group]      mode count size(KB)  when  flags [/pid_file]                            [sig_num]
/usr/local/var/postgres/postgresql.log  :                  600  2     2048      *     J     /usr/local/var/postgres/postmaster.pid 

สิ่งนี้จะหมุนล็อกไฟล์เมื่อถึงขนาด 2MB เก็บถาวร 2 ไฟล์ (สำหรับที่เก็บข้อมูลทั้งหมด 6MB ที่ใช้) และ bzip2 บีบอัดไฟล์เก็บถาวร จะแจ้งให้ทราบถึงกระบวนการ postgres เพื่อเปิดไฟล์บันทึกอีกครั้งเมื่อหมุนซึ่งจำเป็นต้องรับรายการบันทึกใหม่และเพิ่มพื้นที่ว่างในดิสก์โดยไม่ต้องรีสตาร์ทเครื่อง

สิ่งสำคัญที่ควรทราบคือขนาดเป็น KB ไม่ใช่ไบต์

คุณสามารถทดสอบไฟล์ config (โดยไม่มีผลต่อไฟล์ใด ๆ ) sudo newsyslog -nvvโดยใช้

เอกสารโปรแกรม newsyslog ตั้งอยู่ที่นี่: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) ยังใช้: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html HTML


21

OS X มีหลายวิธีในการหมุน / หมดอายุ / ฯลฯ บันทึกของมันขึ้นอยู่กับประเภทของคำถามในการบันทึก:

  1. สำหรับล็อกไฟล์ปกติ (เช่นไฟล์ข้อความที่ผนวกเข้าอย่างต่อเนื่อง) โปรแกรม newsysloglogrotateสามารถหมุนพวกเขาขึ้นอยู่กับขนาดหรือเวลาแม้ว่ามันจะไม่ได้ดูเหมือนจะมีตัวเลือกมากที่สุดเท่าที่ มันได้รับการกำหนดค่าโดย/etc/newsyslog.confและ/etc/newsyslog.d/*(โดยทั่วไปคุณควรเพิ่มไฟล์ไป/etc/newsyslog.d/ยังเพื่อเพิ่มบันทึกลงในรายการการจัดการ)
  2. ระบบ syslog ของ OS X กำลังโยกย้ายจากรูปแบบข้อความธรรมดาไปยังรูปแบบฐานข้อมูลซึ่งส่วนใหญ่เป็น/var/log/asl/ระบบ ฉันไม่เข้าใจทั้งหมดระบบนี้ แต่ฐานข้อมูลนี้ดูเหมือนว่าจะถูกลบออกโดยaslmanager/etc/asl.confซึ่งจะเป็นผู้กำหนด
  3. สำหรับไดเรกทอรีที่มีบุคคลเข้าสู่ระบบ "รายการ" เพิ่มเป็นแฟ้มที่แยกต่างหาก (ส่วนใหญ่/Library/Logs/CrashReporter/) /etc/periodic/daily/100.clean-logsไฟล์ที่ได้รับการล้างโดย นโยบาย (ซึ่งไดเรกทอรีที่จะสแกนและระยะเวลาที่จะออกจากไฟล์) มีการกำหนดค่าใน/etc/defaults/periodic.confแต่ถ้าคุณต้องการแทนที่ / เปลี่ยนแปลงพวกเขาคุณควรสร้าง/etc/periodic.conf.localและวางการปรับแต่งของคุณที่นั่น

หากสิ่งที่คุณต้องการหมุนไม่เหมาะกับโมเดลเหล่านี้คุณสามารถเพิ่มสคริปต์ของคุณเอง/etc/periodic/daily/(ซึ่งจะทำงานทุกเช้าเวลา 3:15 น.) /etc/periodic/weekly/(ทุกเช้าวันเสาร์เวลา 3:15 น.) หรือ/etc/periodic/monthly/(ก่อน ทุกเดือนเวลา 5:30 น.)


11

newsyslogทำงานโดยอัตโนมัติบน OSX ฉันใช้ไฟล์กำหนดค่าเช่นนี้ใน/etc/newsyslog.d/rails_apps.confเพื่อให้ไฟล์บันทึก dev ของฉันถูกตัดเหลือ 5MB

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G

ขนาดเป็น K และต้องใช้ ":" สำหรับเจ้าของ: กลุ่มแม้ว่าจะว่างเปล่า
Bryan Ash

9

คุณสามารถรับ logrotate ผ่าน Homebrew นี่คือบันทึกของฉันจากการตั้งค่านี้

ติดตั้ง

brew install logrotate

กำหนดค่าการหมุนเวียนบันทึก

ไฟล์กำหนดค่าการหมุนเวียนการบันทึกอยู่ใน /usr/local/etc/logrotate.d/

แก้ไขไฟล์กำหนดค่า เช่นฉันต้องการหมุนไฟล์ "/var/log/tend_*.log" บางไฟล์ที่ฉันแนะนำ:

sudo vi /usr/local/etc/logrotate.d/tend.conf

สารบัญ: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

ทดสอบมันออกมา

sudo logrotate -v -f /usr/local/etc/logrotate.d

เริ่มบริการ

sudo brew services start logrotate

เริ่มบริการใหม่

sudo brew services restart logrotate


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