Проблема с logrotate заключается в том, что у него есть один файл глобальной конфигурации, и он НЕ позволяет запускать один файл субконфигурации вращения журнала, в то же время применяя параметры, заданные в файле глобальной конфигурации. То есть у него нет хорошего способа запустить только ОДНУ проверку файла ротации журнала, точно так же, как при запуске каждую ночь из cron. Это может быть сделано с опцией «ограничить эти файлы журнала», или, что еще лучше, «запустить глобальную конфигурацию, но включить только этот файл субконфигурации».
обратите внимание, что --forceфайлы будут вращаться, даже если они не соответствуют указанным критериям, таким как минимальный размер, возраст и т. д.
xofer
4
Если вы поместите файл конфигурации logrotate в /etc/logrotate.d/custom.conf, значит ли это, вам не нужно указывать размер / время, когда журнал должен автоматически вращаться? Или вы должны поместить конфигурацию в другую папку, если вы не собираетесь делать это автоматически?
Damainman
18
Критерии «notifempty» не игнорируются «--force». Это на некоторое время поставило меня в тупик, поэтому я упоминаю это как исключение из заявления @xofer.
Thelogix
16
Вы можете просто вращать все с помощью logrotate --force /etc/logrotate.d/(только имя каталога)
fcm
1
Это правда, что --forceвызовет ротацию, даже если файлы не соответствуют критериям (возраст, размер и т. Д.), Но, пожалуйста, учтите, что это единственный способ обнаружить реальные проблемы, с которыми logrotate -dне может возникнуть (например, у меня на сервере не хватает пространство из-за logrotate не работает в течение нескольких месяцев ... и благодаря тому, что --forceя выяснил, что были File existsошибки. Я вручную удалил эти файлы, и теперь вращение снова работает правильно!
lucaferrario
559
logrotate -d [your_config_file] вызывает режим отладки, предоставляя подробное описание того, что произойдет, но оставляя файлы журнала без изменений.
те, кто пришел сюда в поисках ответа на вопрос типа «как я могу проверить мой logrotate conf?» может принять это как ответ, так как он просто
ИСПЫТЫВАЕТ
не нарушил ваш подход, я пробовал logrotate --forceи работает хорошо.
Беньямин Джафари
122
Если вы хотите принудительно запустить отдельный каталог или файлы журналов демона, вы обычно можете найти конфигурацию /etc/logrotate.d, и они будут работать автономно.
Имейте в виду, что глобальная конфигурация, указанная в /etc/logrotate.conf, не будет применяться, поэтому, если вы сделаете это, убедитесь, что вы конкретно указали все опции, которые вы хотите в /etc/logrotate.d/[servicename]конфигурационном файле.
Вы можете попробовать это, -dчтобы увидеть, что произойдет:
logrotate -df /etc/logrotate.d/nginx
Затем вы можете запустить (используя nginx в качестве примера):
Это хорошо, но вы теряете все глобальные настройки, которые у вас есть в /etc/logrotate.conf. Я написал скрипт для объединения глобальных и специфических файлов logrotate, а затем использовал его для решения этой проблемы. (см. мой ответ).
Энтони
Использование также logrotate -d /etc/logrotate.confбудет запускаться через любые другие включенные файлы conf.
Wmassingham
61
Возможно, вы захотите запустить его в режиме verbose + force.
Отредактируйте /var/lib/logrotate.status, чтобы сбросить дату «последнего поворота» в файле журнала, который вы хотите проверить.
Тогда беги logrotate YOUR_CONFIG_FILE.
Или вы можете использовать флаг --force, но редактирование logrotate.status дает вам большую точность по сравнению с тем, что происходит, а что не поворачивается.
Этот скрипт будет запускать только один файл субконфигурации logrotate, находящийся в /etc/logrotate.d, но включать глобальные настройки из файла глобальной конфигурации "/etc/logrotate.conf". Вы также можете использовать другие otpions для тестирования ...
Ответы:
Да:
logrotate --force $CONFIG_FILE
источник
--force
файлы будут вращаться, даже если они не соответствуют указанным критериям, таким как минимальный размер, возраст и т. д.logrotate --force /etc/logrotate.d/
(только имя каталога)--force
вызовет ротацию, даже если файлы не соответствуют критериям (возраст, размер и т. Д.), Но, пожалуйста, учтите, что это единственный способ обнаружить реальные проблемы, с которымиlogrotate -d
не может возникнуть (например, у меня на сервере не хватает пространство из-за logrotate не работает в течение нескольких месяцев ... и благодаря тому, что--force
я выяснил, что былиFile exists
ошибки. Я вручную удалил эти файлы, и теперь вращение снова работает правильно!logrotate -d [your_config_file]
вызывает режим отладки, предоставляя подробное описание того, что произойдет, но оставляя файлы журнала без изменений.источник
logrotate --force
и работает хорошо.Если вы хотите принудительно запустить отдельный каталог или файлы журналов демона, вы обычно можете найти конфигурацию
/etc/logrotate.d
, и они будут работать автономно.Имейте в виду, что глобальная конфигурация, указанная в
/etc/logrotate.conf
, не будет применяться, поэтому, если вы сделаете это, убедитесь, что вы конкретно указали все опции, которые вы хотите в/etc/logrotate.d/[servicename]
конфигурационном файле.Вы можете попробовать это,
-d
чтобы увидеть, что произойдет:Затем вы можете запустить (используя nginx в качестве примера):
И только логи nginx будут вращаться.
источник
logrotate -d /etc/logrotate.conf
будет запускаться через любые другие включенные файлы conf.Возможно, вы захотите запустить его в режиме verbose + force.
logrotate -vf /etc/logrotate.conf
источник
Способ запустить все logrotate:
который запустит основной файл logrotate, который включает в себя и другие конфигурации logrotate
источник
Выполните следующую команду, способ запустить указанный logrotate:
Опции:
-v: показать процесс
-f: принудительный запуск
custom: пользовательские настройки журнала
например: mongodb-log
источник
Отредактируйте /var/lib/logrotate.status, чтобы сбросить дату «последнего поворота» в файле журнала, который вы хотите проверить.
Тогда беги
logrotate YOUR_CONFIG_FILE
.Или вы можете использовать флаг --force, но редактирование logrotate.status дает вам большую точность по сравнению с тем, что происходит, а что не поворачивается.
источник
/var/lib/logrotate.status
файл не существует в Debian Squeeze.Создан сценарий оболочки для решения проблемы.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Этот скрипт будет запускать только один файл субконфигурации logrotate, находящийся в /etc/logrotate.d, но включать глобальные настройки из файла глобальной конфигурации "/etc/logrotate.conf". Вы также можете использовать другие otpions для тестирования ...
Например...
источник