Вопрос Как я могу запускать работу ежегодно с помощью anacron?


Я хотел бы использовать anacron для запуска работы каждый год. Я вижу только ежедневную, еженедельную и ежемесячную конфигурацию для анакрона. Есть ли способ запускать работу один раз в год?


4
2017-11-25 18:05


происхождения




ответы:


Конечно, и он уже существует с возможными выборами, которые у вас есть: выберите 1 конкретный день и 1 конкретный месяц, и он будет выполняться один раз в год. День 1 месяца 1 будет 1 января.

Anacron имеет 2 способа определения линий. Второй - вот так:

 @period_name delay job-identify command

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

пример

@yearly 0 job1 /usr/bin/execute_me

Значение 0 означает отсутствие задержки. job1 - это идентификатор и команда для выполнения.


4
2017-11-25 18:20



Как работает @period_name с anacron? Я думал, что он использовался в crontab, что не гарантирует выполнение, если машина выключена. - Jeremy Stein
Здесь вы идете @JeremyStein linux.die.net/man/5/anacrontab или manpages.ubuntu.com/manpages/precise/man5/anacrontab.5.html ;) - Rinzwind
Ах, так я мог бы добавить строку в anacrontab следующим образом: @yearly 20 cron.yearly nice run-parts --report /etc/cron.yearly а затем добавьте мои скрипты в /etc/cron.yearly? - Jeremy Stein
Не знаю точно, но эта последняя часть (nice run-parts --report /etc/cron.yearly), вероятно, должна быть 1 командой (не то, что это проблема, поскольку вы можете бросить ее в скрипт и выполнить скрипт) , - Rinzwind


Я думаю, что это сработает, если мой компьютер не отключится весь январь:

Файл в /etc/cron.monthly:

#!/bin/sh
month=`date +%m`
if [ $month -eq 1 ]
then do_yearly_task
fi

0
2017-11-25 18:21