Запускать задачу cron в указанный день недели, но в любое время

0

Я столкнулся с проблемой с Cron. Мне нужно запустить задачу на рабочем столе, но дело в том, что я не могу гарантировать, что мой компьютер будет включен в указанное время.

Например мне нужно выполнить задачу слабо

Если я укажу

* * * * 6 user my_very_useful_task

my_very_useful_task будет выполняться каждую минуту в воскресенье, но мне нужно только один раз

Если я укажу

0 9 * * 6 user my_very_useful_task

my_very_useful_task будет выполнен в 9:00 утра, но я не могу гарантировать, что компьютер будет включен в это время

atomAltera
источник

Ответы:

1

использование Anacron , От человек анакрон страница:

  Anacron can be used to execute commands periodically, with a  frequency
   specified in days.  Unlike cron(8), it does not assume that the machine
   is running continuously.  Hence, it can be used on machines that aren't
   running 24 hours a day, to control daily, weekly, and monthly jobs that
   are usually controlled by cron.

Вы можете найти краткое введение Вот , В любом случае измените файл / etc / anacrontab следующим образом: создать строку с этим форматом

 period   delay   job-identifier   command

Период - это периодичность выполнения задания. Допустимые значения: 1 (ежедневно), 7 (еженедельно), N (= каждые N дней); задержка - время в минутах после загрузки, задание должно ждать перед выполнением; job-identifier - это файл в каталоге / var / spool / anacron, в котором будет храниться запись о последнем выполнении команды. Наконец, команда - это команда, которую вы хотите выполнить.

Пример строки в / etc / anacron:

  1 10 test.daily /home/my_name/bin/my_command

Это будет выполнять команду / home / my_name / bin / my_command ежедневно (опция 1), оставляя запись о ее выполнении в /var/spool/anacron/test.daily, и, если во время выполнения компьютер odwn, он будет ждать 10 минут после следующей загрузки, чтобы выполнить команду.

MariusMatutiae
источник