Выполнять cronjob один раз в день, когда компьютер включен, но не обязательно в определенное время

Выполнять cronjob один раз в день, когда компьютер включен, но не обязательно в определенное время

Я хочу запускать cronjob один раз в день на машине, которая не работает все время, но работает по крайней мере один раз в день в течение пары часов. Проблема с cronjob в том, что я должен указать точное время, когда он должен запуститься, но моя машина может быть не запущена в это конкретное время. Я знаю, что есть опция cron, которая говорит "сделать это, при загрузке", но моя машина обычно не перезагружается, а я оставляю ее в режиме ожидания. Иными словами, я хочу выполнять что-то один раз в день, но я не могу указать точное время. Есть ли решение этой проблемы?

решение1

Вы хотите что-то вродеанакрон:

anacron — это компьютерная программа, которая выполняет периодическое планирование команд, которое традиционно выполняется cron, но без предположения, что система работает непрерывно. Таким образом, ее можно использовать для управления выполнением ежедневных, еженедельных и ежемесячных заданий (или чего-либо с периодом n дней) в системах, которые не работают 24 часа в сутки.

Доступно в виде пакетов в большинстве дистрибутивов Linux. Вероятно, также есть порт для MS Windows...

решение2

Вы можете вызвать задание из скрипта запуска в /etc/rc2.d, который сравнивает сегодняшнюю дату с сохраненной в файле, а затем обновляет этот файл.

Связанный контент