Apakah logrotate bersembunyi di suatu tempat di OSX, atau ada yang setara? Itu tidak ada /usr/sbin
.
Apakah logrotate bersembunyi di suatu tempat di OSX, atau ada yang setara? Itu tidak ada /usr/sbin
.
Jawaban:
Berdasarkan jawaban Brian Armstrong, ada sesuatu dengan sedikit penjelasan dan koreksi. Ini menangani log yang dibuat oleh postgres pada OSX yang diinstal oleh Homebrew. Terletak di /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
Ini akan memutar file log ketika ukurannya mencapai 2MB, menyimpan 2 arsip (untuk total penyimpanan 6MB yang digunakan), dan mengompres arsip bzip2. Ini akan memberi tahu proses postgres untuk membuka kembali file log setelah diputar, yang diperlukan untuk mendapatkan entri log baru dan untuk benar-benar membebaskan ruang disk tanpa memulai ulang mesin.
Penting untuk dicatat bahwa ukurannya adalah dalam KB, bukan byte.
Anda dapat menguji file konfigurasi (tanpa mempengaruhi file apa pun) menggunakan sudo newsyslog -nvv
.
dokumentasi newsyslog ada di sini: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Juga digunakan: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html
OS X memiliki beberapa cara untuk memutar / kedaluwarsa / etc log-nya, tergantung pada jenis log yang dimaksud:
logrotate
. Ini dikonfigurasi oleh /etc/newsyslog.conf
dan /etc/newsyslog.d/*
(umumnya, Anda harus menambahkan file ke /etc/newsyslog.d/
untuk menambahkan log ke daftar manajemennya)./var/log/asl/
. Saya belum sepenuhnya memahami sistem ini, tetapi database ini tampaknya dibersihkan oleh aslmanager , yang dikonfigurasi oleh /etc/asl.conf
./Library/Logs/CrashReporter/
), file-file tersebut dapat dibersihkan oleh /etc/periodic/daily/100.clean-logs
. Kebijakannya (direktori mana yang akan dipindai & berapa lama meninggalkan file) dikonfigurasikan /etc/defaults/periodic.conf
, tetapi jika Anda ingin menimpanya / mengubahnya, Anda harus membuat /etc/periodic.conf.local
dan menempatkan kustomisasi Anda di sana.Jika apa yang ingin Anda putar tidak sesuai dengan salah satu model ini, Anda dapat menambahkan skrip Anda sendiri /etc/periodic/daily/
(yang akan dijalankan setiap pagi pukul 3:15 pagi), /etc/periodic/weekly/
(setiap Sabtu pagi pukul 3:15 pagi), atau /etc/periodic/monthly/
(pertama dari setiap bulan pukul 5.30 pagi).
newsyslog
berjalan secara otomatis di OSX, saya menggunakan file konfigurasi seperti ini /etc/newsyslog.d/rails_apps.conf
untuk menjaga file log dev saya dipangkas menjadi 5MB
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
Anda bisa mendapatkan logrotate melalui Homebrew. Ini catatan saya dari pengaturan ini.
brew install logrotate
Log konfigurasi file rotasi dalam /usr/local/etc/logrotate.d/
Edit file konfigurasi. Misalnya saya ingin memutar beberapa file "/var/log/tend_*.log" yang saya perkenalkan:
sudo vi /usr/local/etc/logrotate.d/tend.conf
Isi:
/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
Salah satu cara untuk melakukannya:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/