/bin/sh: root: not found

root用户经常收到这样的错误邮件:

From: Cron Daemon <root>
To: root
Subject: Cron <root@fwolf> root /home/fwolf/bin/cmd_run_in_crontab
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>

/bin/sh: root: not found

这个问题很简单,但也容易让人糊涂,先说原因吧,/etc/crontab中格式是这样的:

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

root# crontab -e出来的应该是这样:

17 *    * * *   cd / && run-parts --report /etc/cron.hourly

注意,/etc/crontab是针对整个系统的,所以第6列是用户名,root# crontab -e是root用户的,所以第6列就直接是命令了。

这有什么好糊涂的呢,因为这两个文件很可能会一模一样,我就是这样,后来才发现他们的不同,不信用root# crontab -e修改些内容再和/etc/crontab对比就知道了。

现在,/bin/sh: root: not found这个错误不用我再解释了吧?直接拷贝crontab到root的后遗症。