2

#!/usr/bin/python我在第一行有一个 python 脚本。我可以从 CLI 运行它python myScp.py.

但作为 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'
4

2 回答 2

10

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

0 0  * * * cd /my/project; /opt/python-2.7/bin/python bin/myscript.py
于 2013-01-01T16:02:56.950 回答
2

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

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

于 2013-01-01T16:03:14.077 回答