Эквивалент логротации в OSX


52

Является ли Logrotate тайник где - то на OSX, или есть эквивалент? Это не в /usr/sbin.


Я заметил, что есть новостной журнал, но это не совсем то же самое и требует root.
Стив Беннетт

Интересно, можно ли портировать logrotate?
Том О'Коннор

проверьте / etc / period, я считаю, что ротация журналов по умолчанию реализована в виде набора сценариев оболочки. Также посмотрите на newsyslog (/etc/newsyslog.d и man-страницу), чтобы узнать, как это сделать в зависимости от размера файла.
malcolmpdx

спасибо за советы - в / etc / period есть сценарии
Steve Bennett

@SteveBennett Как еще люди получат свои значки «Критик»? Некоторые люди здесь только ради значков и репутации, разве вы не знали.
Марк Фишер

Ответы:


23

Основываясь на ответе Брайана Армстронга, вот кое-что с небольшим объяснением и исправлением. Это обрабатывает журнал, созданный 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


21

OS X имеет несколько способов повернуть / истечь / и т.д. его журналы, в зависимости от типа рассматриваемого журнала:

  1. Для обычных файлов журналов (т. Е. Текстовых файлов, к которым постоянно добавляются), newsyslog может вращать их в зависимости от размера или времени, хотя, похоже, у него не так много вариантов, как logrotate. Он настраивается /etc/newsyslog.confи /etc/newsyslog.d/*( как правило, вы должны добавить файлы /etc/newsyslog.d/добавить журналы в список управления).
  2. Система системного журнала 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 обрезались до 5 МБ

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

размер указан в K, и для владельца: группы требуется символ ":", даже если они не заполнены
Брайан Эш,

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.