Путаница в тайминге Crontab

Кто-нибудь, пожалуйста, объясните, почему еженедельное задание cron, которое, как я предполагал, будет запускаться в 06:47 в воскресенье, на самом деле выполняется в 00:10 во вторник утро?

Это довольно чистый Debian Stretch box (некоторое время ждал, чтобы его использовали).

У меня есть следующий 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 6    * * *   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 )
#

И следующий анакронтаб:

# /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

/ usr / sbin / anacron существует и является исполняемым.

Дата:

Tue 29 Jan 15:26:23 UTC 2019

Время работы:

15:26:30 up 41 days,  7:03,  2 users,  load average: 0.00, 0.00, 0.00

Системный журнал показывает еженедельное выполнение cronjob в 00:10 сегодня утром (вторник):

Jan 29 00:10:10 RT-ARCHIVE anacron[48734]: Job `cron.weekly' started
Jan 29 00:10:10 RT-ARCHIVE anacron[49100]: Updated timestamp for job `cron.weekly' to 2019-01-29

Почему в это время во вторник? Если система была недавно загружена Я мог бы понять, что он играет в догонялки через анакрон, но это не так.

Кроме того, задание не выполнялось в воскресенье, просто чтобы прояснить это.

Я использовал cron в прошлом без проблем. , что мне не хватает ???

РЕДАКТИРОВАТЬ:

В качестве примечания для всех, кто приезжает сюда, я бы до сих пор (сознательно) использовал cron, а не anacron. После этого сообщения я понял, что новые виртуальные серверы я были обеспечены Накрон установлен по умолчанию, а старые - нет. Согласно Debian Wiki, anacron:

установлен по умолчанию с помощью Debian-Installer на ноутбуках и с задачей настольных компьютеров

Так что, возможно, наши ИТ-специалисты начали настраивать их по-другому ...

0
задан 30 January 2019 в 10:11
1 ответ

Три записи в ] / etc / crontab запускается только тогда, когда / usr / sbin / anacrontab отсутствует или не исполняется.

Обратите внимание, что они начинаются с test -x / usr / sbin / anacrontab . Это выполняется первым, затем, поскольку за ними следует || , следующие выполняются только в случае сбоя предыдущей команды.

Как говорится в комментарии в файле anacrontab , он отменяет эти три записи.

Таким образом, ваша еженедельная запись в anacrontab запускается каждые 7 дней с 10-минутной задержкой. Поскольку вы не указали START_HOURS_RANGE , они запускаются через указанное количество минут после полуночи.

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

Теги

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