VPS定时任务没有按时执行的问题

来源:互联网 发布:mac系统cdr文件下载 编辑:程序博客网 时间:2024/05/03 23:31

1.问题现象

           最近使用vps的时候有内存泄漏问题,严重的时候vps会当机,这可能是我使用的一款开源软件(kcptun)有BUG所导致的,暂时找不到更好的软件,我就想通过定时重启vps的方法去释放内存。定时重启vps的命令用的是crontab,可以设定一个重启服务器的任务:

(1)安装crontab

yum install vixie-cron crontabschkconfig crond onservice crond start
(2)编辑定时任务设定
[root@localhost ~]# crontab -e0 12 * * * /sbin/reboot
(3)重启crontab

/etc/rc.d/init.d/crond stop/etc/rc.d/init.d/crond start

(中午12点钟重启vps),可是到了12点钟服务器并没有重启。开始怀疑是crontab没有正常启动,反复检查并没有发现问题。


2.问题分析

            crontab任务执行依赖于时间,时间设定不对也可能导致任务无法正常执行。用“date”命令查看当前系统时间

[root@localhost ~]# dateTue Jul 18 00:00:30 CLT 2017
发现vps上的时间和当前时间不对应。猜测时区可能不对,查看当前时区:

[root@localhost ~]# date -R; date +%z  Tue, 18 Jul 2017 01:30:59 -0400-0400
果然是用了别的时区,正常情况我们使用的是+0800(东八区),而vps用别的时区估计是因为服务器所在的位置是别的位置。


3.修改vps的时区

[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  cp: overwrite `/etc/localtime'?  y
再次查看当前的时区是否正确:

[root@localhost ~]# date -R; date +%z  Tue, 18 Jul 2017 13:34:58 +0800+0800

查看当前时间也和电脑的时间一致

[root@localhost ~]# dateTue Jul 18 13:35:41 CST 2017

再次设定crontab的定时任务,vps可以按照设定的时间重启了,至此问题完全解决。




参考资料:

【1】Linux服务器CentOS/Debian环境自动定时重启设定方法

【2】 Linux定时任务Crontab命令详解

【3】 CentOS 6 时间,时区,设置修改及时间同步 

【4】 linux下定时执行任务的方法 crontab 用法说明