Кто-нибудь, пожалуйста, объясните, почему еженедельное задание 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 на ноутбуках и с задачей настольных компьютеров
Так что, возможно, наши ИТ-специалисты начали настраивать их по-другому ...
Три записи в ] / etc / crontab
запускается только тогда, когда / usr / sbin / anacrontab
отсутствует или не исполняется.
Обратите внимание, что они начинаются с test -x / usr / sbin / anacrontab
. Это выполняется первым, затем, поскольку за ними следует ||
, следующие выполняются только в случае сбоя предыдущей команды.
Как говорится в комментарии в файле anacrontab
, он отменяет эти три записи.
Таким образом, ваша еженедельная запись в anacrontab запускается каждые 7 дней с 10-минутной задержкой. Поскольку вы не указали START_HOURS_RANGE
, они запускаются через указанное количество минут после полуночи.