Предположим, я установил задание cron с помощью анакрона или с помощью crontab -e
.
А что если моя машина выключится в тот момент, когда cron должен был выполнить запланированное задание?
Будет ли задание выполнено, как только моя машина будет включена? Или это не будет выполнено вообще?
Если Вы используете cron
, затем задание Не будет выполняться, если компьютер будет прочь в то время.
Если Вы используете anacron
для того задания это будет выполняться, после того как компьютер превращен На следующем разе. Времени выполнения нужен некоторый explnation. Обратите внимание что самая маленькая единица времени в anacron
день, таким образом, можно только установить anacron
задание, которое будет иметь частоту к выполнению 1 дня или больше.
Вот демонстрационная запись /etc/anacrontab
:
1 5 cron.daily run-parts --report /etc/cron.daily
Начальный 1 указывает, что это задание будет работать каждый день (frequency=1 день)
5 указывает, что будет задержка 5 минут после запуска компьютера прежде, чем выполнить это задание
cron.daily
идентификатор задания для anacron
, это используется для идентификации определенных заданий в каталоге шпульки /var/spool/anacron/
run-parts --report /etc/cron.daily
команда должна быть выполнена.
Так, если Ваш компьютер был выключен во время выполнения задания, anacron
проверит метку времени последнего выполнения от /var/spool/anacron/cron.daily
. Если это выполнялось в предыдущий день или ранее затем anacron
выполнит задание и обновит метку времени соответственно.
Использование Ubuntu anacron
для ежедневных, еженедельных и ежемесячных заданий. От /etc/crontab
:
05 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Как Вы видите каждый день в 6:05, ежедневные задания будут выполнены от /etc/cron.daily
. Если anacron
существует, это проанализирует /etc/anacrontab
(и выполненный run-parts
выполнить файлы под /etc/cron.daily
), иначе cron
будет использовать run-parts
непосредственно выполнить все файлы под /etc/cron.daily
.
Если компьютер Прочь в то время, anacron
выполнит задание после превращения его На следующем разе согласно инструкциям от /etc/anacrontab
файл.
крон никогда не будет запускать задание, когда система будет выключена, когда время для задания крона передало. Задания могут быть выполнены в минутах.
anacron действительно запускает задание, когда система была выключена. Но anacron может только быть установлен на дни. Ничто меньшее.
anacron используется для рабочих столов, таким образом, Ubuntu имеет это активное (рабочие столы, как ожидают, будут выключены reguraly). крон главным образом используется для серверов (те машины имеют тенденцию работать постоянно).
crontab
как любой другой безотносительно планировщика или независимо от того, что не может работать, когда компьютер выключен.
крон является Unix, утилита, которая позволяет задачам быть автоматически выполненными в фоновом режиме равномерно демоном крона. Эти задачи часто называют как задания крона в Unix. Crontab (Таблица КРОНА) является файлом, который содержит расписание записей крона, которые будут выполнены и в требуемое время.
Так выполненный крон работает, команда
crontab -e
откроет файл крона в Вашем редакторе по умолчанию.
Добавляют запись Вашей запланированной команды
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
Поэтому теперь для Вашего вопроса, предполагают, что у меня есть эта запись крона:
30 23 31 5 * apt-get install foo
Это я хочу установить foo
пакет в 31.05.2015 в 23:30
в простых словах, крон не выполняется и никогда не будет выполняться во всем
, Теперь предполагают, что у меня есть эта запись крона:
30 23 * 5 * apt-get install foo
Это я хочу установить foo
пакет в любой день месяца 5-2015 в 23:30
в простых словах, крон не выполняется, но у Вас все еще есть некоторая возможность работать в любой день Месяца 5 в этом году в то время 23:30.
крон только возвратится, чтобы завершиться, если ПК был прочь к тому времени, когда это должно было быть выполнено, вместо этого это выполнится в определенное время в Ваших crontab записях.