Запустите Crontab в любое время после 4 вечера

Я пытаюсь запустить скрипт через crontab в osx 10.8.5, который будет работать в 4: 30.

30 16 * * 1-5 /Library/Frameworks/Python.framework/Versions/2.7/bin/python /Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py

но сегодня я понял, что мой компьютер не всегда включен в 4: 30. Поэтому я добавил исправление * 16 * * 1-5. Но потом я понял, что это может быть совсем не 4-5. Как я могу настроить crontab на запуск в любое время после 4 вечера (16 cron time)?

25
задан EasilyBaffled
23.05.2023 8:23 Количество просмотров материала 2698
Распечатать страницу

2 ответа

из-за того, как cron делает свою обработку, я не уверен, что вы можете использовать cron сам по себе для этого. От cron (8) на странице:

утилита cron затем просыпается каждую минуту, исследуя все сохраненные crontabs, проверяя каждую команду, чтобы увидеть, если он должен быть запущен в текущую минуту. При выполнении команд любые выходные данные отправляются владельцу crontab (или пользователю, указанному в переменной среды MAILTO в crontab, если таковой имеется существует.)

Cron не имеет метода для идентификации уже запущенных записей. Таким образом, вы могли бы сделать это:

* 16-23 * * 1-5 <script>

но, что бы просто сказать cron запустить этот скрипт каждую минуту С 16: 00 до 23: 59, пока работал cron. (Глядя на crontab (5) man page, я не думаю, что вы можете сделать " 16-24 "или " 16-0".")

Итак, если вы хотите что-то запустить после между 4 вечера и в полночь, мое предложение было бы по cron запускать скрипт каждые 15 минут, после 4 вечера:

*/4 16-23 * * 1-5 <script>

затем, внутри скрипта, включить какой-то способ определить, если скрипт уже был запущен в тот день.

5
отвечен dafydd 2023-05-24 16:11

для Linux существует Anacron для пропущенных cron-заданий. (см.здесь)

для Mac OSX я нашел эта версия но, кажется, прекращено.

существует также версия здесь что означает "Леопард":

Примечание: эта версия Anacron будет работать на MacOS 10.5 (Leopard), но это не требуется, так как Leopard launchd будет работать пропущенные задания, когда машина следующий проснулся. Подробнее на http://mac.majorgeeks.com/files/details/anacron.html#Z5s7GokjQVbUATOU.99

вы можете попробовать, если он работает на " Mountain lion "или переключиться на" Launchd", который имеет функциональность для запуска пропущенных заданий встроенных.


Cron и Anacron

Если вы запускаете Mandrake, SUSE или любой другой дистрибутив, и ваш компьютер не работает 24 часа в сутки, есть несколько заданий Cron, которые могут быть забыты потому что они запланированы на 3: 00-4: 00 утра. Установка Anacron установит это в права. Anacron ищет пропущенные задания Cron и выполняет их через пять минут после загрузки компьютера. Вы заметите дополнительную активность вашего процессора и жесткого диска в течение примерно от пяти до семи минут 7 в результате. Примечание: Red Hat и Fedora имеют предустановленный Anacron по умолчанию.

установка Anacron проста и не требует специальной настройки. Вот пример того, как его установить использование Mandrake:

Центр управления Mandrake > управление программным обеспечением > установка программного обеспечения > поиск Анакрона.

1
отвечен Rik 2023-05-24 18:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх