Cronjob:找不到命令

时间:2015-12-07 19:15:58

标签: path cron synology

我有一个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包含在此目录

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

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

https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work

答案 1 :(得分:1)

由于crontab运行时不使用environnemnt变量,因此您可以在脚本中创建它们。 ...但是您还可以检查/ bin / python是否退出(或/ sbin / 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