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

498
Christian

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

2

2 ответа на вопрос

4
sleske

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

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

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

Это ответ. Отлично sinni800 13 лет назад 0
0
RedGrittyBrick

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

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