cronjob 说“/bin/sh: 1: root: not found”

gok*_*sel 7 cron 18.04

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

MAILTO="ggeeeryit@gmail.com"
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
0 4 * * * root /sbin/reboot
Run Code Online (Sandbox Code Playgroud)

Per*_*uck 12

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

0 4 * * * root /sbin/reboot
Run Code Online (Sandbox Code Playgroud)

将该作业作为root. 如果是这种情况,一个人可以以另一个用户的身份运行任意命令。没有人会想要那样。

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

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

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

0 4 * * * /sbin/reboot
Run Code Online (Sandbox Code Playgroud)

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