Назад | Перейти на главную страницу

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

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

Если я сделаю 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

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

Кроме того .. как вы можете видеть в журнале, ежечасные задания выполняются в правильное время: час и 17 минут, это именно то, что у меня есть в /etc/crontab

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

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

test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

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

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

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