Python脚本无法从Cronjob写入文件。但当我手动运行它时,它可以

Python脚本无法从Cronjob写入文件。但当我手动运行它时,它可以,python,ubuntu,cron,Python,Ubuntu,Cron,我试图运行一些运行python3脚本,从ubuntu16和18机器上获取一些数据并将其写入文件 由于某些原因,当我手动运行它时,它可以工作,但从crontab它不工作 我在这里尝试了这些解决方案: cd到crontab上的工作目录 尝试以root用户身份运行cron,并授予py文件权限 我试图运行执行这个py脚本的bash脚本,但仍然无法运行 我尝试将输出移动到日志文件,它只显示脚本完成的最后一部分。(正如我前面提到的) 5.我试图从服务中grep cron,但我得到了MTA错误,并修复了它,但

我试图运行一些运行python3脚本,从ubuntu16和18机器上获取一些数据并将其写入文件

由于某些原因,当我手动运行它时,它可以工作,但从crontab它不工作

我在这里尝试了这些解决方案:

  • cd到crontab上的工作目录
  • 尝试以root用户身份运行cron,并授予py文件权限
  • 我试图运行执行这个py脚本的bash脚本,但仍然无法运行
  • 我尝试将输出移动到日志文件,它只显示脚本完成的最后一部分。(正如我前面提到的)
  • 5.我试图从服务中grep cron,但我得到了MTA错误,并修复了它,但仍然无法工作

    6.当im只是创建一个py脚本,将常规字符串打印到文件中时,它就工作了。但是这个脚本不起作用

    我的部分代码:

         else:
        txtFile = open("/home/user/knifeStatus.txt","w+")
        os.chdir("/etc/chef")
        os.system(sslfetch) **#until this part it do it correctly**
        knifeLnxResult = str(os.popen(knifeLnx).read())
        knifeResultTime = knifeLnxResult[0:10]
    
    此部分结束后,它会进行一些计算,然后调用下一个函数将其写入文件。

    fileCreator(str(chefDaysPass),str(chefHourPass))
    
    #Function to creates and edit the text file.
    def fileCreator(chefDaysPass , chefHourPass):
        textInside = ("Last Chef run completed at: {} | {}") 
        textInside = textInside.format(str(chefDaysPass),str(chefHourPass))
        txtFile.write(textInside)
        txtFile.close()
        print("Knife File Created succesfully")
    
    我的crontab:

    */1 * * * * cd /var/chef/ && /usr/bin/python3 /var/chef/Knife_Status.py > /var/chef/cronOut.log
    

    有什么建议吗确实需要一些帮助

    2>&1
    添加到crontab的该行末尾,以确保stderr与stdout一起进入日志文件,然后在日志文件运行后检查日志文件。将
    2>&1
    添加到crontab的该行末尾,以确保stderr与stdout一起进入日志文件,然后在日志文件运行后检查它。