最近,在Linux使用过程中,系统时间与实际时间间隔8小时,并且修改过后隔一段时间就会被还原,且时间间隔为1分钟左右。为解决该问题尝试过多种修改时间的方法,包括设置系统时间和硬件时间,最后发现utc时间不正确,和实际时间相同(本应要提早8小时),于是采用本地时间更新成 UTC 时间解决了该问题(没有找到原因,只解决了问题)。
Linux服务器执行时发现系统时间不对,所以查找资料,首先用到了 date 来修改系统日期
1,使用 tzselect 来设置时区 选了 Asia/China/Beijing,无效;
2,修改Linux时间:date -s 时间
这种方式只是临时修改系统时间,当系统重新启动的时候就会还原。
3,而后使用 timedatectl 指令来修改时间
timedatectl set-time '2019-03-16 10:10:00'
4,此时发现时间仍旧会被还原,而且是过一分钟左右,系统时间会自动更新,相隔8小时,
猜测系统时间读取的是硬件时间,于是使用 hwclock 设置硬件时间
hwclock --set --date '2019-03-16 10:10:00'
这是修改硬件的时间 也就是永久性修改Linux的时间
hwclock --show 查看硬件的时间
hwclock --set --date '2019-03-16 10:10:00' 设置硬件时间为19年3月16日10点10分00秒
hwclock --hctosys 设置系统时间和硬件时间同步
clock -w 保存时钟
5,经过以上操作,发现LINUX系统时间仍然会定时更新,
猜测:觉得是有地方设置了定时同步,只是同步时间源不对。
尝试方法:根据网上资料,尝试网络时间同步的方式,使用 timedatectl 开启 ntp 同步,timedatectl set-ntp 1
#timedatectl
......
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
6,此处与网友贴出的信息有所不一致, ntp enabled 虽然开启,,但是 synchronized 仍然关闭(使用 ntp update [serverip]仍无效),就算设置了 RTC in local TZ 开启也没有效果,没有找到出现此问题的原因所在
Warning: Ignoring the TZ variable. Reading the system's time zone setting only.
Local time: 五 2019-03-29 09:05:38 UTC
Universal time: 五 2019-03-29 09:05:38 UTC
RTC time: 五 2019-03-29 00:57:06
Time zone: Universal (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
猜测:看到UTC的时间一直不正确,猜想是由于UTC时间导致的
解决方法:将 localtime时间重置,并将utc时间设置为localtime时间
rm /etc/localtime
#Step 4:从/usr/share/zoneinfo/中创建软连接以替换当前的时区信息,直接选择Universal:
ln -s /usr/share/zoneinfo/Universal /etc/localtime
---------------------
参考博客来源:https://blog.csdn.net/strure/article/details/77256039