大老张学编程 2020-02-09
最近有个需求,每天定时重启服务器
比较少干这个事情,于是上网找了一下,找到两篇博客是写CentOS是怎么用crontab定时重启服务器
很简单:
通过crontab -l 查看,还没有相应的命令 通过crontab -e 命令,进入编辑界面 参照别人的教程,加上一行命令(凌晨4:50重启):
50 4 * * * root /sbin/reboot
:wq 保持退出重启一下crond服务:
/bin/systemctl restart crond.service
第二天发现好像没有生效重启, 用命令:
last reboot
查看重启记录果然凌晨没重启
然后就追查一下原因,查看crontab的运行状态
/bin/systemctl status crond.service
crond 服务已经在跑,但是有一条send mail的报错
网上查了下,是因为没有指定输出,所以会默认send mail, 在send mail 的时候出错, 这个估计是mail那边的问题,暂时先不去追究。
所以就改一下,指定输出 >/dev/null 2>&1
50 4 * * * root /sbin/reboot >/dev/null 2>&1
还是不生效,send mail的错误没有了,查看一下cron的执行日志,
tail -f /var/log/cron
看到上面设置的cron指令已经是执行了。
于是把root去掉:
50 4 * * * /sbin/reboot >/dev/null 2>&1
现在生效了, 之前被别人的博客教程给坑了,root是多余的。
解释一下这条命令:
50 4 * * * 表示调度时间是4:50后面是执行的脚本 /sbin/reboot