Чи можна запустити одну ітерацію логротату вручну, не плануючи її на деякий проміжок часу?
Чи можна запустити одну ітерацію логротату вручну, не плануючи її на деякий проміжок часу?
Відповіді:
Так: 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
щоб побачити, що буде:
logrotate -df /etc/logrotate.d/nginx
Потім ви можете запустити (використовуючи nginx як приклад):
logrotate -f /etc/logrotate.d/nginx
І самі журнали nginx будуть обернені.
logrotate -d /etc/logrotate.conf
буде запущено через будь-які інші включені файли конф.
Спосіб запуску всього логротату:
logrotate -f /etc/logrotate.conf
який запустить основний файл логротату, який включає й інші конфігурації логротату
Випустіть таку команду, як запустити вказаний логротат:
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
}
редагуйте /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 для його тестування ...
Наприклад...
logrotate_one -d syslog