Является logrotate где-то прячется на OSX или есть эквивалент? Это не в /usr/sbin
.
Основываясь на ответе Брайана Армстронга, вот что-то с небольшим дополнительным объяснением и исправлением. Это обрабатывает журнал, созданный 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
Это приведет к ротации файла журнала, когда он достигнет размера 2 МБ, сохранит 2 архива (всего используется хранилище 6 МБ) и сожмет архивы с помощью bzip2. Он уведомит процесс postgres о повторном открытии файлов журнала после ротации, что необходимо для получения новых записей журнала и фактического освобождения дискового пространства без перезапуска компьютера.
Важно отметить, что размер указывается в килобайтах, а не в байтах.
Вы можете протестировать файл конфигурации (не затрагивая никакие файлы), используя 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
В 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 утра).
Вы можете получить 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
newsyslog
запускается автоматически в OSX, я использую такой конфигурационный файл в /etc/newsyslog.d/rails_apps.conf
чтобы мои файлы журнала разработчика были обрезаны до 5 МБ
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
Один из способов сделать это:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/