在Crontab上执行python脚本

gui*_*gui 80 python linux cron

我正在尝试使用linux crontab执行python脚本,但我找到了很多解决方案,但没有一个能够正常工作.例如:在/etc/cron.d编辑anacron或使用crontab -e.

我想每10分钟运行一次这个脚本.

我必须编辑哪个文件来配置它?

提前致谢

编辑

我把这一行放在文件的末尾,但它不会改变任何东西.我必须重新启动任何服务吗?

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py
Run Code Online (Sandbox Code Playgroud)

编辑[2]

伙计们,我已经遵循了源代码.这里可能有问题,但是当我手动执行它时,它可以工作:

http://pastebin.com/qsWHNzqT

Rau*_*ngo 120

只需使用crontab -e并按照以下教程操作:

http://adminschoice.com/crontab-quick-reference

请参阅第3点,了解如何指定频率的指南.

根据您的要求,它应该有效地:

*/10 * * * * /usr/bin/python script.py
Run Code Online (Sandbox Code Playgroud)

  • @guisantogui刚注意到你在"/"之前错过了一个"*" (3认同)

Bas*_*tch 57

将您的脚本放在以.foo.py开头的文件中

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

然后使用给该脚本的执行权限

chmod a+x foo.py
Run Code Online (Sandbox Code Playgroud)

并使用您的foo.py文件的完整路径crontab.

请参阅处理shebangexecve(2)的文档


小智 18

正如你所提到的,没有任何改变,

首先,您应该从crontab执行重定向stdin和stderr,如下所示:

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py > /tmp/listener.log 2>&1
Run Code Online (Sandbox Code Playgroud)

然后您可以查看该文件/tmp/listener.log以查看脚本是否按预期执行.

其次,猜猜你的意思是通过观察你的程序创建的文件来改变一切:

f = file('counter', 'r+w')
json_file = file('json_file_create_server.json','r+w')
Run Code Online (Sandbox Code Playgroud)

上面的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
Run Code Online (Sandbox Code Playgroud)

切换到工作目录并从那里执行脚本,然后您可以查看就地创建的文件.

  • @MohideenibnMohammed 将错误消息(``stderr``)重定向到可见命令行(``stdout``) (2认同)