我有一个 cronjob,如下所示:
*/10 * * * * root cd /some/directory && python3 FILE.py >> Output.txt 2>&1
如果我从常规命令行运行该命令,它工作正常。但是当从 cronjob 运行时,我得到 /bin/sh: python3: not found
但是当我运行 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 执行它。
https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work
关于path - 定时任务 : Command Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141380/