logrotate не вращается во время, указанное в crontab
Мне интересно, почему logrotate не вращает мои лог-файлы во время, когда он вызывается через crontab.
Моя запись в crontab:
50 2 * * * / usr / sbin / logrotate
Поэтому все мои журналы должны быть повернуты ночью в 2:50. Я получаю сообщение о состоянии от моего сервера, что logrotate вызывается в 2:50, так что, похоже, это работает.
Журналы вращаются правильно - но не в 2:50, они вращаются в 9:30.
Я погуглил еще 2 часа, проверил logrotate.conf, мои файлы в logrotate.d, но я не могу найти конфигурацию, которая могла бы вызвать такую задержку. Я был бы признателен за подсказку о том, что может вызвать это поведение и как я могу изменить его (настройки были настроены моим предшественником, и я оставил мне без документации)
3 ответа
Хорошо, я нашел проблему: в cron.daily была еще одна запись logrotate, которую я не видел в последнее время.
Поэтому - по крайней мере, в SLES - вы должны сконфигурировать DAILY_TIME в / etc / sysconfig / cron, который по умолчанию пуст и поэтому обычно должен запускаться через 15 минут после загрузки.
Почему это всегда было 9:30? Я не знаю, но когда я изменил его на принудительный запуск в 4:00, он фактически вращает мои журналы в 4:00.
Получил информацию отсюда: https://lists.opensuse.org/opensuse/2011-09/msg00550.html
Logrotate контролируется anacron
,
Проверьте конфигурацию этого сервиса в файле etc\anacrontab
, Например, это может быть:
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=10
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-4
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Линия START_HOURS_RANGE=3-4
указывает, что анакрон будет работать в любое время между 3 и 4 часами утра и линией RANDOM_DELAY=10
означает, что это добавит случайное время максимум 10 минут к времени запуска.
Вам нужно будет изменить это, чтобы оно работало в нужный момент.
Пользователи Debian могут подумать, что он работает с версией 6.25 (/etc/crontab), но начиная с последних версий он работает с версией 00.00 и настроен на systemd !
Старый /etc/crontab:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / &&run-parts --report /etc/cron.daily )
Если вы хотите изменить время выполнения systemd, вам необходимо отредактировать этот файл: /etc/systemd/system/timers.target.wants/logrotate.timer
по умолчанию это:
[Timer]
OnCalendar=daily
Если вы хотите запускать его в 6.20 каждый день:
[Timer]
OnCalendar=*-*-* 6:20
(затем я перезагрузил систему, но не уверен, что это необходимо!)