выполнение скрипта python через crontab - PullRequest
2 голосов
/ 03 марта 2011

что происходит с моим скриптом на python, который не запускается через crontab каждую минуту.Мой сценарий имеет разрешения на выполнение, а затем вызывает два других сценария в Python.

<code>
This is the content of my crontab (#crontab -l):
*/1 * * * * /usr/bin/rsm/samplesMonitor.py
Спасибо, ребята.

Ответы [ 4 ]

4 голосов
/ 04 марта 2011

Проверьте /var/log/syslog на наличие ошибок.

DIAGNOSTICS
       cron requires that each entry in a crontab end in a 
       newline character. If the last entry in a crontab is 
       missing a newline (ie, terminated by  EOF),  cron  will 
       consider the crontab (at least partially) broken. A 
       warning will be written to syslog.

Обновление: Согласно вашему сообщению в журнале, скрипт выполняется, но возвращает код ошибки. Cron отправит вам вывод по электронной почте, если у вас установлен почтовый агент.

Попробуйте либо:

  1. установить почтовый агент, например: apt-get install exim4
  2. измените строку cron на log в файл, например:

    * * * * * /usr/bin/rsm/samplesMonitor.py 2>&1 >> /tmp/script.log
    

Обновление 2: Я перечитал ваш вопрос, и мне показалось, что, возможно, у вас возникли проблемы с импортом Python. Вы говорите, что ваш скрипт вызывает два других скрипта. Я бы посоветовал протестировать запуск вашего скрипта с /. Python имеет поведение по умолчанию для поиска импорта в текущем рабочем каталоге, поэтому убедитесь, что ваш скрипт может выполняться из любого пути.

В crontab вы можете установить начальный рабочий каталог, вызывая ваш скрипт из другого процесса оболочки. Например:

bash -c "cd THE_WORKING_DIR;/usr/bin/rsm/samplesMonitor.py"
1 голос
/ 03 марта 2011

Я считаю, что это должно быть */1, а не *\1.

0 голосов
/ 03 марта 2011

Если вы хотите, чтобы он запускался каждую минуту, просто сделайте это

* * * * * /usr/bin/rsm/samplesMonitor.py
0 голосов
/ 03 марта 2011

Это должно быть */1 вместо *\1 (косая черта вместо обратной косой черты).Также убедитесь, что путь правильный;под /usr/bin.

обычно нет подкаталогов
...