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的后遗症。