Еквівалент логротату на OSX


52

Чи логротат ховається десь на OSX, чи є еквівалент? Це не в /usr/sbin.


Я помічаю, що є новинний журнал, але це не зовсім те саме, що вимагає кореня.
Стів Беннетт

Чи можу я поцікавитись логротатом?
Том О'Коннор

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

дякую за підказки - справді є сценарії в / etc / periodic
Стів Беннетт

@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 - стисне архів. Він сповістить про процес постгресів, щоб знову відкрити файли журналу після повернення, що необхідно для отримання нових записів журналу та фактичного звільнення дискового простору без перезавантаження машини.

Важливо зазначити, що розмір - у КБ, а не в байтах.

Ви можете протестувати конфігураційний файл (не впливаючи на жодні файли), використовуючи sudo newsyslog -nvv.

Документація для новин розміщена тут: 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щоб зберегти файли журналу розробників до 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.