2

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

2 ответа2

4

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .