背景
笔者在CentOS7上用crontab -e
命令设置了如下定时任务:
10 4 * * * reboot
期待每天凌晨4:10服务器自动重启。然而第二天查看Uptime却发现好像该命令并没有被执行。
调查与解决
在/var/spool/mail/root
中会记录root用户的crontab执行日志。查看该日志,最后一行赫然写着:
/bin/sh: reboot: command not found
原来crontab的默认path是/bin/sh
。而通过which reboot
得知,root用户的reboot
命令是在/sbin
下的。
因此,我们把crontab的内容修改为:
10 4 * * * /sbin/reboot
问题解决✨