Выполнить python Script на Crontab
Я пытаюсь выполнить python script с помощью linux crontab, но я нашел много решений, и никто из них не работает. Например: отредактируйте anacron на /etc/cron.d или используйте crontab -e.
Я хочу запустить этот script каждые 10 минут.
Какой файл нужно изменить для его настройки?
Заранее спасибо
ИЗМЕНИТЬ
Я помещаю эту строку в конец файла, но ничего не меняет. Нужно ли мне перезапускать какие-либо службы?
*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py
ИЗМЕНИТЬ [2]
Ребята, я следил за исходным кодом. Там может быть проблема, но когда я выполняю ее вручную, она работает:
http://pastebin.com/qsWHNzqT
Ответы
Ответ 1
Просто используйте crontab -e и следуйте инструкциям здесь:
http://adminschoice.com/crontab-quick-reference
Посмотрите на пункт 3 для руководства по определению частоты.
В соответствии с вашим требованием, это должно быть эффективно:
*/10 * * * * /usr/bin/python script.py
Ответ 2
Поместите свой script в файл foo.py
, начиная с
#!/usr/bin/python
затем предоставить разрешение на выполнение для этого script с помощью
chmod a+x foo.py
и используйте полный путь к вашему foo.py
файлу в crontab
.
См. документацию execve (2), которая обрабатывает shebang
Ответ 3
Как вы уже упоминали ничего не меняет,
Сначала вы должны перенаправить как stdin, так и stderr из выполнения crontab, как показано ниже:
*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py > /tmp/listener.log 2>&1
то вы можете просмотреть файл /tmp/listener.log
, чтобы увидеть, выполняется ли script, как вы ожидаете.
Во-вторых, предположите, что вы имеете в виду изменить что-либо, наблюдая файлы, созданные вашей программой:
f = file('counter', 'r+w')
json_file = file('json_file_create_server.json','r+w')
работа crontab выше не будет создавать эти файлы в каталоге /home/souza/Documets/Listener
, так как задание cron не выполняется в этом каталоге, и вы используете относительный путь в программе. Итак, чтобы создать этот файл в каталоге /home/souza/Documets/Listener
, следующее задание cron сделает трюк:
*/2 * * * * cd /home/souza/Documets/Listener && /usr/bin/python listener.py > /tmp/listener.log 2>&1
Измените рабочий каталог и выполните script, затем вы сможете просматривать созданные файлы.