CentOS通过crontab定时重启服务器

大老张学编程 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

相关推荐