使用python脚本与cron

时间:2013-01-01 15:56:21

标签: python cron

我在第一行有一个#!/usr/bin/python的python脚本。我可以使用python myScp.py.

从CLI运行它

但是作为cron脚本的一部分。 python脚本无法运行。测试了cron,运行python脚本并可以写入/tmp/crontest.txt

似乎存在目录问题。我用os.getcwd().测试它是正确的......就在cron运行脚本时它会抛出一个错误。从CLI运行:/usr/bin/python myScp.py会引发相同的错误。

Traceback (most recent call last):
  File "/myScp.py", line 31, in <module>
    execfile(dn2 + 'anotherScpt.py')
IOError: [Errno 2] No such file or directory: './anotherScpt.py'

2 个答案:

答案 0 :(得分:9)

我们首选的方法是在crontab条目中明确指定工作目录:

0 0  * * * cd /my/project; /opt/python-2.7/bin/python bin/myscript.py

答案 1 :(得分:2)

鉴于错误,您的问题是您依赖于特定目录中的程序来执行另一个文件。

当你在它所在的目录中运行程序时,它可以找到该文件 - 当你(或cron)在该目录之外运行它时,它找不到该文件。您需要将文件放在脚本可以找到的位置,使用绝对路径,或者在程序中找到脚本的位置。