以cronjob身份运行时出现脚本错误

时间:2013-08-15 07:36:45

标签: python crontab

我已经设置了如下的cronjob,当我从shell运行脚本时脚本运行完全正常但是当通过cronjob运行时我遇到了以下错误。

知道什么是cronjob吗?这里有环境问题吗?任何指向调试的指针?

28 21,0 * * * /usr/bin/python /local/mnt/workspace/user/Automation/script.py project branch 

错误

   Traceback (most recent call last):
      File "/local/mnt/workspace/user/Automation/script.py", line 74, in <module>
        output = phCmdoutput(phCmd)
      File "/local/mnt/workspace/user/Automation/script.py", line 28, in phCmdoutput
        phPipe = Popen(phCmd, stdout=PIPE, stderr=PIPE)
      File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
        errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory

2 个答案:

答案 0 :(得分:1)

看起来句子phCmd中的phPipe = Popen(phCmd, stdout=PIPE, stderr=PIPE)正在使用某个文件或程序本身的相对路径名。您可以查看它,并将它们更改为绝对路径。

答案 1 :(得分:0)

是的,存在环境问题 - 您没有相同的环境!例如,$PATH可能会有所不同。

最可能的原因是phCmd包含相对路径名而不是绝对路径名的程序名。通过cron运行程序时的一般规则是对所有内容使用完全限定的绝对路径名。