cronjob 说“/bin/sh: 1: root: 未找到”

cronjob 说“/bin/sh: 1: root: 未找到”

我的 cronjob 命令如下,我每天都会收到这封电子邮件。我每晚都尝试重启服务器(ubuntu 18.04)。这里的问题是什么?

MAILTO="[email protected]"
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
0 4 * * * root /sbin/reboot

答案1

通过 创建的 Cronjobscrontab -e以发出该命令的用户身份运行,因此拥有该 cronjob。您不能在行中提供用户

0 4 * * * root /sbin/reboot

让该作业以 的身份运行root。如果是这样的话,人们就可以以另一个用户的身份运行任意命令。没有人愿意这样。

当你想以用户身份运行 cronjob 时,root你必须发出

sudo crontab -e

编辑root的 crontab – 不是你的。删除用户规范,即添加以下行:

0 4 * * * /sbin/reboot

也可以在下面的文件中定义 cronjobs /etc/cron.d。在这种情况下,语法会有所不同,时间规范后的第一列必须包含要以该用户的身份运行该作业。但该语法仅适用于下面的文件/etc/cron.d

相关内容