在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的文件。