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

(затем я перезагрузил систему, но не уверен, что это необходимо!)

Другие вопросы по тегам