解决CentOS系统时间与UTC时间不一致问题---实践

1.问题描述

最近在划水的鱼博客项目上用 @Scheduled 和corn表达式写了个定时器,项目在本地windows上跑是没有问题的,但是发现发布到linux服务上时,定时器运行时间不对了。与我设置的定时时间相差了8个小时。

查了相关资料发现是:linux的CentOS系统时间与UTC时间不一致导致的

2.原因

     咱们在安装完Centos Linux操做系统以后,点击系统的时间发现与如今所使用的时间不一致,相差有8小时,而在安装系统的时候咱们选择的时区是上海,可是CentOS Linux默认的bios时间是utc时间(UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。

    UTC至关于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。),因此咱们在时间上面相隔了8个小时。这个时候bios的时间和系统的时间固然是不一致,一个表明 utc 时间,一个表明cst(+8时区),即上海的时间。

查看时间命令:

1.查看系统时间:
date
2.查看utc时间
date -u
image-20211013095940378

很明显两个时间相差勒8个小时,所以就出现了以上的问题。

3.解决办法

在CentOS Linux中终端命令中执行如下命令:

3.1 编辑时间配置文件
vi /etc/sysconfig/clock 
------------------------------
 ZONE="Asia/Shanghai"操作系统
 UTC=false                          #设置为false,硬件时钟不于utc时间一致同步
 ARC=falsei
3.2 linux的时区设置为上海时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime
3.3 对准时间
ntpdate 47.99.xxx.xxx(你的ip)

若是没有安装ntp服务器,刚须要先执行如下命令 安装npt服务器:

yum install ntp

如果报这个问题:

image-20211013095248340

解决杀掉进程

使用lsof –i:123
没有lsof命令的话:yum install -y lsof

[root@izbp12w1juq9po2x7vs7nnz ~]# lsof -i:123
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
ntpd    31393  ntp   16u  IPv4 48258263      0t0  UDP *:ntp 
ntpd    31393  ntp   17u  IPv6 48258264      0t0  UDP *:ntp 
ntpd    31393  ntp   18u  IPv4 48258269      0t0  UDP localhost:ntp 
ntpd    31393  ntp   19u  IPv4 48258270      0t0  UDP izbp12w1juq9po2x7vs7nnz:ntp 
ntpd    31393  ntp   20u  IPv4 48258271      0t0  UDP izbp12w1juq9po2x7vs7nnz:ntp 
[root@izbp12w1juq9po2x7vs7nnz ~]# kill -9 31393

然后再执行命令:ntpdate 47.99.xxx.xxx(你的ip)

如果报错:

image-20211013101651247
解决办法:
①在本机上装ntpd服务
②启动ntpd服务
③检查ntp server完成了与自身的同步
④使用ntpdate让其它节点与ntp server进行同步
3.4 设置硬件时间和系统时间一致并校准
/sbin/hwclock --systohc

好了,咱们的CentOS linux系统时间和计算机硬件时间终于都是cst时间了,而且都是上海时区,终因而正常啦。

时间是同步了,但是在网上搜方法时,将CST时间换成了GMT了,不影响使用就不关心了。

GMT时间是格林尼治标准时间。CST时间是指包含中国。美国。巴西,澳大利亚四个时区的时间。

image-20211013110801332

还有一个简单的方法就是直接改时间,命令:

date -s 2021/10/13
date -s 11:04
image-20211013111445519

完事!

你可能感兴趣的:(解决CentOS系统时间与UTC时间不一致问题---实践)