cron.daily, не работающий в то время, когда это должно?

Мой /etc/cron.daily сценарии, кажется, выполняются намного позже от того, что я понимаю, что они должны. Я нахожусь в Ubuntu, и anacron установлен.

Если я делаю a sudo cat /var/log/syslog | grep cron Я получаю что-то как:

Aug 23 01:17:01 mymachine CRON[25171]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 02:17:01 mymachine CRON[25588]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 03:17:01 mymachine CRON[26026]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 03:25:01 mymachine CRON[30320]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))
Aug 23 04:17:01 mymachine CRON[26363]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 05:17:01 mymachine CRON[26770]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 06:17:01 mymachine CRON[27168]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 07:17:01 mymachine CRON[27547]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Aug 23 07:30:01 mymachine CRON[2249]: (root) CMD (start -q anacron || :)
Aug 23 07:30:02 mymachine anacron[2252]: Anacron 2.3 started on 2014-08-23
Aug 23 07:30:02 mymachine anacron[2252]: Will run job `cron.daily' in 5 min.
Aug 23 07:30:02 mymachine anacron[2252]: Jobs will be executed sequentially
Aug 23 07:35:02 mymachine anacron[2252]: Job `cron.daily' started

Как Вы видите, в 3:25 это пыталось сделать что-то. Но cron.daily выполнение, запущенное действительно в 7:35.

Мой /etc/crontab :

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 3    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Из того, что я понимаю, ежедневные сценарии действительно в течение 3:25.

Мой /etc/anacrontab :

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1   5   cron.daily  run-parts --report /etc/cron.daily
7   10  cron.weekly run-parts --report /etc/cron.weekly
@monthly    15  cron.monthly    run-parts --report /etc/cron.monthly

Так... кто-то знает, почему мой крон начал делать что-то в 3:25, но затем действительно запускать задания в 7:35?

Также.. как Вы видите в журнале, работы с почасовой оплатой выполняются в корректное время: час и 17 минут, который является точно, в чем я имею /etc/crontab

Наконец, от журналов, кажется, что мои ежедневные задания на самом деле выполняются anacron вместо cron? Так cron находит, что ничто не работает (в 3:25) и затем anacron выполняет задания в 7:35? Если это правда, как я могу зафиксировать это?

Заранее спасибо,

0
задан 23 August 2014 в 19:18
1 ответ
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Выполняется команда test, а затем последовательность ( cd ...) только в том случае, если команда теста не прошла. Если установлен анакрон, то команда теста будет успешной, а остальная часть командной строки не будет запущена. Другими словами, эта строка выполняет cron.daily только в том случае, если не установлен анакрон.

Тем временем, анакрон вызывается периодически, и в конце концов он выполняет cron.daily, основываясь на собственном конфигурационном файле. Похоже, что анакрон может не вызываться раньше, иначе он бы запустил cron.daily раньше.

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

.
2
ответ дан 4 December 2019 в 13:57

Теги

Похожие вопросы