最近我开始在Ubuntu 18.04.4 LTS机器上工作。我创建了一个小项目,它应该在docker容器中运行,命令是:
docker run docker_name "2022-04-11"
当我手动运行该命令时(我有sudo
权限(,该命令运行起来很有魅力,但当我尝试从sudo crontab
运行它时,该命令会中断。
我试图用命令将crontab
的所有输出记录到文件myjob.log
中
0 1 * * * docker run docker_name "2022-04-11" >> /home/projects/project/myjob.log 2>&1
然后我看到myjob.log
文件包含一条错误消息:
/bin/sh: 1: docker: not found
这让我很困惑。为什么我可以运行docker
命令,但crontab
不能?
检查crontab
,您可能缺少以下内容:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
如果您以用户而非root
的身份运行,则必须将其添加到顶部。
简而言之,你的$PATH
没有设置,所以你找不到docker
命令。