Как сделать так, чтобы изменения вступили в силу?

99

Я перешел по этой ссылке, чтобы изменить конфигурацию log-rotate для RHEL 6

Что я должен сделать после того, как я внес изменения в конфигурационный файл?

BufBills
источник

Ответы:

139

logrotateиспользует crontabдля работы. Это запланированная работа, а не демон, поэтому нет необходимости перезагружать ее конфигурацию.
Когда crontabисполняет logrotate, он будет автоматически использовать новый конфигурационный файл.
Если вам нужно протестировать вашу конфигурацию, вы также можете выполнить ее logrotateсамостоятельно с помощью команды:

logrotate /etc/logrotate.d/your-logrotate-config

Или, как упомянуто в комментариях, определите logrotateстроку в выходных данных команды crontab -lи выполните командную строку, обратитесь к ответу slm, чтобы получить точное объяснение cron.daily.

Kiwy
источник
1
Просто добавьте к вашему ответу, запись cron для logrotateзапускается один раз в день.
MKC
@Ketan, так, как я могу сделать это сразу? спасибо
BufBills
Точно сказать не могу. Одна из возможностей - найти соответствующую запись в crontab crontab -lи выполнить ее.
MKC
2
Если вы хотите, чтобы он вступил в силу, немедленно запустите послесловие cron.
SLM
2
logrotateесть -dвозможность для тестирования (или «отладки»), я бы рекомендовал запустить его хотя бы один раз с этим.
FrustratedWithFormsDesigner
36

Большинство logrotateнастроек, которые я видел в разных дистрибутивах, заканчиваются /etc/cron.daily. Там есть сценарий оболочки с удачным названием logrotate.

пример

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

Ручной запуск

Если вы хотите, чтобы он запускался вручную, просто запустите скрипт от имени пользователя root:

$ sudo /etc/cron.daily/logrotate

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

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
SLM
источник
31

Это должно быть автоматически через cron. Вы можете заставить его проверить ваши изменения.

Для глобального входа:

sudo logrotate -v -f /etc/logrotate.conf

Для одного файла conf:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf
maskeda
источник
11
-fдля принудительной ротации есть и -dдля отладки, которая также является «Пробным прогоном», она будет печатать все, что сделала бы, но на самом деле не делает.
ThorSummoner
5

На моей машине CentOS 6.5 для настройки logrotate для nginx мне пришлось сделать следующее:

logrotate /etc/logrotate.d/nginx

И тогда я проверил, заботится ли logrotate о моей новой конфигурации nginx, как это:

cat /var/lib/logrotate.status
Raptor
источник