2010-01-22 3 views
404

Возможно ли запустить одну итерацию logrotate вручную, не планируя ее на некоторый интервал?Возможно ли запустить одну проверку logrotate вручную?

+2

Проблема с logrotate заключается в том, что у него есть один глобальный файл конфигурации, и он не позволяет вам запускать файл подконфигурации одного логарифма, все еще применяя параметры, заданные в глобальном файле конфигурации. То есть у него нет хорошего способа запуска только одной проверки файла вращения журнала, точно так же, как при каждой ночевке от cron. Он может использовать параметр «ограничение для этих файлов журналов» или, что еще лучше, «запустить глобальную конфигурацию, но включать только этот файл подконфигурации». – anthony

ответ

537

Да: logrotate --force $CONFIG_FILE

+82

обратите внимание, что '--force' будет вращать файлы, даже если они не соответствуют указанным критериям, таким как minsize, age и т. Д. – xofer

+4

Если вы поместите файл конфигурации logrotate в /etc/logrotate.d/custom.conf это означает, что вам не нужно указывать размер/время, когда журнал должен автоматически вращаться? Или вы должны поместить конфигурацию в другую папку, если вы не намерены автоматически ее поворачивать? – Damainman

+1

+1 Спасибо, это именно то, что я ищу – Mike

378

logrotate -d [your_config_file] вызывает режим отладки, давая вам подробное описание того, что произошел бы, но оставив файлы журнал нетронутыми.

+42

тех, кто пришел сюда, ища ответ на вопрос типа «как я могу проверить свой логротат conf?». может взять это в качестве ответа, так как это просто ТЕСТЫ conf – kommradHomer

+1

, это должен быть принятый ответ – storm

29

Способ запуска всех LogRotate является:

logrotate -f /etc/logrotate.conf 

, который будет работать первичный файл LogRotate, который включает в себя другие конфигурации LogRotate а

50

Вы можете запустить его в многословной + сила Режим.

logrotate -vf /etc/logrotate.conf

87

Если вы хотите, чтобы запустить один определенный каталог или файлы журнала демона, обычно можно найти конфигурацию в /etc/logrotate.d, и они будут работать автономно.

Имейте в виду, что глобальная конфигурация, указанная в /etc/logrotate.conf, не применяется, поэтому, если вы это сделаете, вы должны убедиться, что вы указали все необходимые параметры в конфигурационном файле /etc/logrotate.d/[servicename].

Вы можете попробовать его с -d, чтобы посмотреть, что произойдет:

logrotate -df /etc/logrotate.d/nginx 

Затем вы можете запустить (с помощью Nginx в качестве примера):

logrotate -f /etc/logrotate.d/nginx 

И одни журналы Nginx будет поворачивается.

19

Выполните следующую команду, как запустить указанный LogRotate:

logrotate -vf /etc/logrotate.d/custom 

Варианты:

-v: показать процесс

-f: форсирование запуска

обычай: пользовательская настройка журнала

например: mongodb-log

# mongodb-log rotate 

/data/var/log/mongodb/mongod.log { 
    daily 
    dateext 
    rotate 30 
    copytruncate 
    missingok 
} 
+0

plus1 для фактического предоставления полного примера. PS Как мы можем определить [что на самом деле делает logrotate для файлов] (https://stackoverflow.com/questions/46578307/)? –

1

Создал сценарий оболочки для решения проблемы.

http://www.ict.griffith.edu.au/anthony/software/#logrotate_one

Этот скрипт будет работать только файл суб-конфигурации одного LogRotate найденную в «/etc/logrotate.d», но включают в себя глобальные параметры из в глобальном файле конфигурации «/etc/logrotate.conf ». Вы также можете использовать другие otpions для тестирования ...

Например ...

logrotate_one -d syslog 
0

редактировать/вар/Библиотека/Logrotate.статус для сброса «последней повернутой» даты в файле журнала, который вы хотите проверить.

Затем запустить logrotate YOUR_CONFIG_FILE.

Или вы можете использовать флаг -force, но редактирование logrotate.status дает вам больше точности над тем, что делает и не поворачивается.

Смежные вопросы