在Crontab上执行python脚本
我试图使用Linux的crontab执行python脚本,但我发现了很多的解决scheme,并没有一个工作。 例如:编辑/etc/cron.d处的anacron或使用crontab -e。
我想每10分钟运行一次这个脚本。
我必须编辑什么文件才能configuration?
提前致谢
编辑
我把这一行放在文件的末尾,但它不会改变任何东西。 我必须重新启动任何服务吗?
*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py
编辑[2]
伙计们,我遵循了源代码。 这里可能有一个问题,但是当我手动执行它时,它可以工作:
http://pastebin.com/qsWHNzqT
只要使用crontab -e并按照这里的教程:
http://adminschoice.com/crontab-quick-reference
请看第3点,了解如何指定频率。
根据你的要求,它应该是有效的:
*/10 * * * * /usr/bin/python script.py
把你的脚本放在一个foo.py
文件中
#!/usr/bin/python
然后使用该脚本给执行权限
chmod a+x foo.py
并在您的crontab
使用foo.py
文件的完整path。
请参阅处理shebang的execve(2)的文档
正如你所提到的不会改变任何东西 ,
首先,你应该像下面那样从crontab的执行中redirectstdin和stderr:
*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py > /tmp/listener.log 2>&1
那么您可以查看文件/tmp/listener.log
,查看脚本是否按照您的预期执行。
其次,通过观看你的程序创build的文件,猜测你的意思是改变什么 。
f = file('counter', 'r+w') json_file = file('json_file_create_server.json','r+w')
上面的crontab作业不会在目录/home/souza/Documets/Listener
创build这些文件,因为cron作业没有在此目录中执行,并且您在程序中使用相对path。 所以要在目录/home/souza/Documets/Listener
创build这些文件,下面的cron工作将会实现:
*/2 * * * * cd /home/souza/Documets/Listener && /usr/bin/python listener.py > /tmp/listener.log 2>&1
切换到工作目录并从那里执行脚本,然后可以查看已创build的文件。