我在第一行有一个#!/usr/bin/python
的python脚本。我可以使用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'
答案 0 :(得分:9)
我们首选的方法是在crontab条目中明确指定工作目录:
0 0 * * * cd /my/project; /opt/python-2.7/bin/python bin/myscript.py
答案 1 :(得分:2)
鉴于错误,您的问题是您依赖于特定目录中的程序来执行另一个文件。
当你在它所在的目录中运行程序时,它可以找到该文件 - 当你(或cron)在该目录之外运行它时,它找不到该文件。您需要将文件放在脚本可以找到的位置,使用绝对路径,或者在程序中找到脚本的位置。