Path Cronjob:未找到命令

Path Cronjob:未找到命令,path,cron,environment-variables,synology,Path,Cron,Environment Variables,Synology,我的工作如下: */10 * * * * root cd /some/directory && python3 FILE.py >> Output.txt 2>&1 如果我从常规命令行运行该命令,它工作正常。但是当从cronjob运行时,我得到/bin/sh:python3:notfound 但当我运行echo$PATH时,它会返回 /sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/

我的工作如下:

*/10    *   *   *   *   root    cd /some/directory && python3 FILE.py >> Output.txt 2>&1
如果我从常规命令行运行该命令,它工作正常。但是当从cronjob运行时,我得到
/bin/sh:python3:notfound

但当我运行
echo$PATH
时,它会返回

/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/usr/local/python3/bin:/opt/bin
(请注意,
/usr/local/python3/bin
包含在此目录中。)


如何修复此问题?

看起来cronjob的环境与您的交互式shell不同。您可以编辑cronjob以使用绝对路径来调用该python脚本。或者您可以编写一个包装器sh脚本来精确设置python脚本所需的环境,并让cronjob执行该脚本


由于在crontab运行时不使用environnemnt变量,因此您可以在脚本中创建它们。。。 …但您也可以检查/bin/python是否存在(或/sbin/python),并将python替换为存在的python:

*/10    *   *   *   *   root    cd /some/directory && /bin/python3 FILE.py >> Output.txt 2>&1


这回答了你的问题吗?
*/10    *   *   *   *   root    cd /some/directory && /sbin/python3 FILE.py >> Output.txt 2>&1