คือlogrotateหลบซ่อนตัวอยู่ที่ไหนสักแห่งใน OSX หรือมีเทียบเท่า? /usr/sbinมันไม่ได้อยู่ใน
คือlogrotateหลบซ่อนตัวอยู่ที่ไหนสักแห่งใน OSX หรือมีเทียบเท่า? /usr/sbinมันไม่ได้อยู่ใน
คำตอบ:
จากคำตอบของ 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
OS X มีหลายวิธีในการหมุน / หมดอายุ / ฯลฯ บันทึกของมันขึ้นอยู่กับประเภทของคำถามในการบันทึก:
logrotateสามารถหมุนพวกเขาขึ้นอยู่กับขนาดหรือเวลาแม้ว่ามันจะไม่ได้ดูเหมือนจะมีตัวเลือกมากที่สุดเท่าที่ มันได้รับการกำหนดค่าโดย/etc/newsyslog.confและ/etc/newsyslog.d/*(โดยทั่วไปคุณควรเพิ่มไฟล์ไป/etc/newsyslog.d/ยังเพื่อเพิ่มบันทึกลงในรายการการจัดการ)/var/log/asl/ระบบ ฉันไม่เข้าใจทั้งหมดระบบนี้ แต่ฐานข้อมูลนี้ดูเหมือนว่าจะถูกลบออกโดยaslmanager/etc/asl.confซึ่งจะเป็นผู้กำหนด/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 น.)
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
คุณสามารถรับ 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