一次LINUX操作系统时间不对而引发的”惨案”

最近遇到了一个奇怪的现象:系统每天都会挂一次。其实,平时与LINUX操作系统打交道的时间还算比较多,但是这个问题发生的时候还是有些束手无策,而后多次尝试解决方案后才得以解决。考虑到同学们在使用LINUX的时候也可能会遇到类似的问题,借此机会在这次问题的解决上做了整理分享给大家。

▲ 系统部署介绍
3台linux操作系统
A是部署tomcat前台发布应用的机器
B是部署中间件的机器
C是部署数据库机器
A机器前台发应用请求到B机器,由B机器的中间件处理,业务数据的增删改查在C机器的数据库上。

▲ 问题分析

查看应用挂掉的时间,发现是每天的00点。

根据要求,又设置了前台应用每天00点去备份数据库数据。但是3台linux操作系统的时间又是不一样的(这种现象很常见),其中A和C的系统时间可以使用root用户进行修改,但是B系统的时间修改时有报错:local time zone must be set-see zic manual。初步定位是因为B机器时间走快的原因(很多应用在时间走快的情况下都可能会有问题,走慢的情况问题倒是少一点),之后尝试修改系统时间但是仍出现报错。

一次LINUX操作系统时间不对而引发的

问题解决

需要解决的问题是修改B操作系统的时间无效。根据提示信息local time zone must be set-see zic 去搜索解决方法,耗时很久,但无果。其实这句英文的意思是:需要手工设置时区。之后搜索整理下linux系统手工设置时区的方法,再去解决问题。

手工设置时区方法

手工设置时区方法参考链接(点击可直达)http://jingyan.baidu.com/article/fa4125acb7328628ac70920e.html

▪ 时区设置

使用tzselect 命令来进行,结果发现tzselect命令只是告诉了设置时区的方法,而并不是真的去修改/etc/sysconfig/clock这个文件。换句话说就是tzselect命令仅仅告诉我们通过设置TZ这个环境变量来选择的时区,然后将变量添加到.profile文件中。下面就简单介绍一下如何使用tzselect命令设置时区,以及如何通过修改/etc/sysconfig/clock配置文件来设置时区。

▪ tzselect

执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1。

过程如下图:

一次LINUX操作系统时间不对而引发的

一次LINUX操作系统时间不对而引发的

一次LINUX操作系统时间不对而引发的

一次LINUX操作系统时间不对而引发的

至此,修改日期时间成功为

一次LINUX操作系统时间不对而引发的

目前时隔几个月后,IPO系统需要部署到生产环境的虚拟机上时,系统又出现了同样的问题现象,可以使用上面方法进行解决。如果同学们有更好的解决方案可以留言一起探讨。

转载请注明出处:https://stgod.com/3735/