1.问题现象

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

(1)安装crontab

yum install vixie-cron crontabs
chkconfig crond on
service crond start
(2)编辑定时任务设定
[root@localhost ~]# crontab -e
0 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 ~]# date
Tue 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 ~]# date
Tue Jul 18 13:35:41 CST 2017

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




参考资料:

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

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

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

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





Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐