Запуск скрипта Python с использованием Cron?

У меня есть скрипт Python, который я хотел бы добавить в cron.

Сценарий имеет разрешение +x на него.

Как мне добавить его в crontab? (скажем, я хочу, чтобы он запускался каждую минуту).

Важно: когда я перехожу (используя оболочку) к папке скрипта, я не могу запустить его, используя "./script_name.py"; это не работает. Тем не менее, когда я запускаю его с помощью «Python script_name.py», все работает.


person user3262424    schedule 20.12.2010    source источник


Ответы (1)


С cron вы должны запускать скрипт как script_name.py, и ваш скрипт соответствует следующим критериям:

  • Исполняемый бит установлен
  • Хэш-банг скрипта установлен правильно, например. #!/usr/bin/env python
  • it is accessible from the PATH
    • e.g. place it in /usr/local/bin/ or /opt/local/bin/ (and they are accessible to your system PATH.)

Если эти условия соблюдены, вы сможете запустить его из любой точки вашей локальной системы как script_name.py.

person ocodo    schedule 20.12.2010
comment
Спасибо. Что делать, если сценарий находится в другой области (не в '/usr/local/bin/' или '/opt/local/bin/')? есть ли что-нибудь, что я могу сделать, чтобы он работал? - person user3262424; 20.12.2010
comment
Конечно, но вам все равно нужно добавить расположение папки в свой PATH, причина, по которой я предлагаю эти места, заключается в том, что именно там должны жить ваши необязательные/пользовательские локальные системные корзины/скрипты (исторически). Но нет причин, по которым вы не можете использовать другую папку. Также вы можете вызвать скрипт, используя абсолютный путь /myfolder/sub/bin/etc/wherever/script_name.py в вашем crontab. Это просто не обычный способ сделать это, и поэтому создает путаницу, если этой системой должен управлять кто-то другой (или вы в будущем) - person ocodo; 20.12.2010
comment
Спасибо за помощь. Я пытался сделать это, и скрипт, кажется, работает через cron, но по какой-то причине останавливается через несколько секунд. дополнительная информация здесь: stackoverflow.com/questions/ 4487145/ вы случайно не знаете, что мне не хватает? - person user3262424; 20.12.2010
comment
Я просмотрел другой вопрос, комментарии - это то, что я бы предложил сам. В частности, попробуйте использовать logging, чтобы понять, что происходит. - person ocodo; 20.12.2010
comment
Я перезагрузил компьютер, и теперь все работает нормально. Спасибо за помощь! - person user3262424; 20.12.2010
comment
Надеюсь проблема не вернется :) - person ocodo; 21.12.2010