使用Cron运行Python脚本?

6

我有一个Python脚本,想要将其添加到cron中。

该脚本已经具有+x权限。

我应该如何将其添加到crontab中?(比如说,我想让它每分钟运行一次)。

重要提示:当我在shell中导航到脚本所在的文件夹时,我无法使用"./script_name.py"来运行它;这样做不起作用。但是,当我使用"Python script_name.py"来运行它时,一切正常。

1个回答

8

cron 中,你应该以 script_name.py 的形式运行脚本,并且你的脚本需要满足以下条件:

  • 设置可执行位
  • 设置正确的脚本头部,例如 #!/usr/bin/env python
  • 它可以从 PATH 中访问
    • 例如:将其放置在 /usr/local/bin//opt/local/bin/(并且它们可以被你系统的 PATH 访问)

如果这些条件得到满足,你就可以在本地系统上的任何地方以 script_name.py 的形式运行它。


谢谢。如果脚本驻留在不同的区域(而不是'/usr/local/bin/'或'/opt/local/bin/'),有没有任何方法可以使它运行? - user3262424
1
当然,但你仍然需要将它的文件夹位置添加到你的PATH中。我建议这些位置是因为那里是你的可选/用户本地系统二进制文件/脚本应该存在的地方(历史上如此)。但你完全可以使用另一个文件夹,同时你也可以在你的crontab中使用绝对路径名/myfolder/sub/bin/etc/wherever/script_name.py来调用脚本。这只是不常规的做法,因此如果这个系统需要由其他人(或者你自己)管理,就会产生混淆。 - ocodo
谢谢您的帮助。我尝试了这个,脚本似乎可以通过cron工作,但出现了一些问题,在几秒钟后就停止了。更多信息请参见:http://stackoverflow.com/questions/4487145/python-script-not-working-via-cron您知道我错过了什么吗? - user3262424
我看了一下其他的问题,那里的评论就是我自己想建议的事情。特别是尝试使用“logging”来捕获发生的情况。 - ocodo
我重新启动了计算机,现在一切正常。谢谢你的帮助! - user3262424
希望问题不会再出现 :) - ocodo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接