cron job error:sh:1:<pkg>:not found </pkg>

时间:2014-05-23 07:00:58

标签: python django cron crontab

我正在为我的python django项目使用coverage模块。现在我想用cron job邮寄我的报道。为此,我为运行单元测试用例创建脚本并在附件中发送报告。如果我手动运行该文件,这工作正常。但是使用cron作业我在登录日志文件时遇到了这个错误。

sh: 1: coverage: not found

我的运行单元测试和发送邮件的文件: 的 coverage_report.py

def run_test():
    print 'before running'
    try:
        print commands.getoutput("cd project_path && coverage run --source='.' manage.py test")
    except:
        print "Error in run_test"
    print 'done running'

def generate_report():
    try:
        commands.getoutput('cd /tmp/ && rm report.txt')
        commands.getoutput('cd project_path && coverage report */*.py >> /tmp/report.txt')
    except:
        print "Error in generate report"
def send_mail():
    send_email('Coverage Report', 'This is coverage report for this week ', ['gauravnagpal2002@gmail.com'],'plain',['/tmp/report.txt'])


def main():
    run_test()
    generate_report()
    send_mail()
    print "Mail send successfully."

if __name__ == '__main__':
     main()

如果我手动运行此文件它工作正常并以txt格式发送报告。但如果我使用cron job运行此文件,则发送空白文件。 我的玉米作业语法:

21  6  *  *  *  python <project_path>/scripts/coverage_report.py >> /tmp/coverage_report.log

运行此文件后生成的文件 /tmp/coverage_report.log

before running

sh: 1: coverage: not found
done running
Mail send successfully.

请帮助。

1 个答案:

答案 0 :(得分:1)

PATH问题。

coverage不在你的cron工作路径中。

您的shell脚本应包含:

export PATH=...