Если я добавлю что-то к крону как еженедельное задание, то разве он не будет работать, если мой компьютер не будет работать в то очень точное время?

Скажем, я делаю это:

0 0 0 * * somejob

Это будет работать на дате набора, и если мой компьютер не будет не в ту дату, то это пропустит на той неделе?

Скажем, я установил это задание прямо сейчас. И затем мой компьютер выключен, 5 дней от знают в течение целого дня.

В основном мне нужно что-то для выполнения каждую неделю, но мой компьютер не может быть на 24/7.

2
задан 31.10.2011, 09:06

2 ответа

Да, cron только выполнит задание, запланированное в течение определенного времени, если компьютер будет работать в то время. Путем это работает, то, что каждую минуту, это проверяет все запланированные задания крона, чтобы видеть, соответствуют ли их поля времени текущей минуте, и если так, это выполняет задание. В противном случае это пропускается. Нет никакого понятия "сохранения" выполнения задания в течение более позднего времени.

То, что Вы могли сделать для Вашей ситуации, является использованием файл маркера для указывания в прошлый раз, когда задание было выполнено. Создайте немного сценария или программы, которая похожа на это (это - синтаксис псевдо-Bash):

if (marker file was last modified > 1 week ago); then
    run the job
    touch marker file
fi

и можно установить тот сценарий как задание крона для выполнения каждый день, каждый час, или даже каждую минуту - так часто, как необходимо удостовериться, что он будет работать по крайней мере один раз в неделю в течение времени, на котором у Вас есть свой компьютер.

4
ответ дан 08.12.2019, 05:30

Anacron вероятен, что Вы ищете:

Anacron является периодическим планировщиком команды. Это выполняет команды atintervals указанный в днях. В отличие от крона, это не предполагает, что thesystem работает непрерывно.

2
ответ дан 08.12.2019, 05:30

Теги

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