今天在搭建项目环境的时候,发现有一台服务器使用ntpdata ntpserver命令后,与ntp服务器时间差距很大。经过排查,最终发现是由于在安装系统时,选择时区这一块没有选择正确(默认时区),由此导致了显示的时间和服务器的时间差距很大。

解决办法:修改系统时区为Asia/Shanghai(使用如下命令),然后再重新执行ntpdate命令即可。

cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

相关扩展:

查看系统时区相关命令:

[root@localhost ~]# date +%z
+0800     #<==即东八区时间

修改系统时区相关操作:

将/usr/share/zoneinfo/目录下面的对应时区文件复制到/etc/目录,并重命令为localtime,例如设置Asia/Shanghai为默认时区命令:

cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

/etc/localtime文件:

设置系统的时区,将/usr/share/zoneinfo/ 中相应文件拷贝到/etc下并重命名为 localtime 即可修改时区设置,这种修改对 date 
命令是及时生效的。不论是 date 还是 hwclock 都会用到这个文件,会根据这个文件的时区设置来进行UTC和本地之间之间的换算。
/etc/sysconfig/clock文件(不用修改):
这个配置文件里面支持UTC,ARC,SRM,ZONE这几个配置选项,关于这几个配置选项详解如下:
(1)UTC
指定BIOS中保存的时间是否是GMT/UTC时间,true表示BIOS里面保存的时间是UTC时间,false表示BIOS里面保存的时间是本地时间
(2)ZONE
指定时区,ZONE的值是一个文件的相对路径名,这个文件是相对 /usr/share/zoneinfo 目录下的一个时区文件。比如ZONE的值可以是:“Asia/Shanghai", "US/Pacific", "UTC" 等
(3)ARC
这个选项一般配置false,在一些特殊硬件(Alpha)下才配置该选项为true
(4)SRM
它同ARC,该选项一般配置false,在一下特殊硬件下才配置该选项为false
说明:这个配置文件里面的参数和 hwclock 命令关系很大,系统在启动的时候读取/etc/sysconfig/clock 文件的内容,根据这些内容调用hwclock 命令
(5)/etc/sysconfig/clock的配置实例
ZONE="Asia/Shanghai"
UTC=false
ARC=false