Назад | Перейти на главную страницу

сделать logrotate вращаться только при запуске службы

Я хотел бы выполнять ротацию файлов журнала всякий раз, когда я запускаю службу, но никогда не «автоматически».

Я запускаю службу на основе Python, которая ведет журнал в конкретный файл журнала. служба (в настоящее время) не поддерживает уведомление о повторном открытии файлов журнала (например, USR1 ловушка). Также сервис не должен быть перезапущенным для ротации файла журнала (он производит непрерывный аудиопоток, который не должен прерываться).

Система, в которой я работаю, не имеет аппаратных часов, поэтому часы сбрасываются каждый раз при загрузке системы, что делает записи журнала, происходящие из разных перезагрузок в одном файле, утомительными (я получаю одну и ту же дату несколько раз).

Я также хочу вести историю разных ботинок.

Таким образом, идея состоит в том, чтобы использовать ротацию журналов при каждой загрузке (только).

Что-то вроде бега /usr/sbin/logrotate --force /etc/logrotate.d/myservice перед запуском службы следует сделать свое дело.

Теперь мой вопрос: можно ли настроить log-ротацию в /etc/logrotate.d/myservice таким образом, что это будет никогда запускаться автоматически?

Простым решением было бы не сохранить мой файл logrotate-config в /etc/logrotate.d/, но «в другом месте».

Но тогда я бы хотел, чтобы мой пользователь мог найти logrotate-config в хорошо известный место (чтобы они могли изменять конфигурацию по своему желанию).

Вы можете настроить logrotate для поворота файла с помощью функции copy-truncate, которая сохраняет исходный файл и не требует повторного создания файла журнала.

Синтаксис:

/tmp/output.log {
        size 1M
        copytruncate
        rotate 4
        compress
}

Это скопирует текущий файл, затем cat /dev/null > file

При этом logrotate только «автоматически» вращает файлы в определенных местах, если не настроено иное. Я предполагаю, что вы регистрируете свой скрипт в / var / log / httpd, и поэтому он автоматически поворачивается.

Зачем вообще возиться с logrotate, если вы не хотите / не нуждаетесь в нем?

Просто поверните файл журнала из своего сценария запуска.