Linux时间错误

事情是这样的~

今天突然有客服找,说客户购买的产品都没有及时生效。早上8点下的单,查看数据库的时间都成了下午2点,那就没得说了。肯定回来找,时间足足差了几个小时。找原因,修复吧~~~

 

1、首先查询当前服务器的时间,和时区,发现时间不对,时区是正确的。这种的解决起来相对来说简单一些。

a730535ea04f49518252075b914513b5.png

2、使用 ntp工具,必须保证有网络连接,才可以矫正,以下是操作手册图:

Linux时间错误_第1张图片

然而我使用这种方式,并没有修改成功。

Linux时间错误_第2张图片

咨询服务商官方人员,告诉我是我的yum有问题先解决这个。可是我已经操作过 update了,而且下载其他的也没有问题(估计官方人员也是二把刀)。

3、查询到其他博客,有说软件包数据损坏导致的,所以又尝试清理软件包数据库的缓存

sudo rm -rf /var/lib/rpm/__db*

4、创建软件包缓存,再次安装 ntp包

sudo rpm --rebuilddb

yum install ntpdate/ntp

最后还是失败,和刚才的问题一样,无法找到该软件包。

看到这里,你可能已经解决了这个问题,那么恭喜你,继续写BUG吧。如果是没有解决的,请继续往下看,脑子总是个好东西,只要思想不滑坡,办法总比困难多。

5、换种思路

这个问题已经迫在眉睫,客服一直在上报该类问题。不得已只能换个思路来解决了。不知道大家有没有听说过 ntpdate的代替品,我觉得不仅仅是代替,更是救命稻草。接下就给大家娓娓道来,这个代替品-chrony的可爱之处。

Linux时间错误_第3张图片

上图中最后一个命令,就是安装命令,简直简单粗暴。

安装后打开 chrony.conf查看下,路径一般在 /etc/chrony/ 或者 /etc下,只要看到里面有

server ntp.aliyun.com xxxx  iburst

server ntp1.aliyun.con xxxx iburst

证明你下载安装的对了,接下里就启动起来吧!

systemctl start chronyd

systemctl status chronyd (检测是否已经启动正常)

设置开机启动 

systemctl enable chronyd

到这里,你已经成功设置好了 chrony~

最重要的一步,就是要解决时间不对的问题,然而,对于chrony来说很简单,一句命令搞定。。。

chrony -a makestep

回复 200 OK

接着使用以下命令检查同步状态

chronyc tracking.

终于大功告成了,使用 date -R看看是否解决了!!!

c4edd3c45c8b420d9971ed6900f8c45d.png

别急着走,下面还有菜单,不看你可能会后悔~~~~~~~~~

彩蛋时间::::::::::

当你还沉浸在大功告成的喜乐中时~~~~

 

客服又来上报,客户的系统进不去了,心态不好的你要崩溃了~~~~~

你要学会思考:

 

为什么会出现这个问题呢,第一件要做的就是 查日志。

你会发现,数据库报了一个这样的异常:

390377d2c51d408f85a5e8fb05a6952e.png

很有可能你见都没有见过,(见过的就不要说话了)容大拿来解释下:

由于服务器时间不正确,刚修复好(其实docker默认是给重启了服务器),导致系统时间倒退造成。
Mybatis 默认的 id 生成算法是雪花算法,时间倒退导致生成 id 抛异常。
以上就是问题出现的详细,解决很简单~

 

只需要:重新启动你的项目。至此已经全部搞定。

这里只是简单介绍了时区正常时间错误的解决方案,关于时区错误的问题等有机会再来补充。简单的时区错误,可以通过拷贝粘贴本机的localtime文件或者使用tzselect选择北京来解决,难搞的是如果硬件时钟也错了,就得需要大搞了~~~关于如何处理,请听下次分解~~~~~

相信以上的文章会对你有所帮助,下面诚挚邀请你进入下面的技术交流群。

Linux时间错误_第4张图片

 

 

你可能感兴趣的:(linux,运维,服务器)