解决时间同步

一:问题

1.问题描述

初学Linux(虚拟机)的小伙伴(俺也是)可能会遇到这种问题:把时区设置成了东八区,时间也修改成了正确的,但是重启之后,时间又不对了

2.问题原因

分析

在Linux计算机上,有2个时间,一个是硬件时间(BIOS中记录的时间,称为hwclock),另一个是操作系统时间(osclock)

硬件时钟由BIOS电池供电,在虚拟机中,一旦关机或者挂起,就会影响硬件时间

当计算机关机后,会继续运行

在Linux系统中,默认使用的是UTC时间

即使在安装系统的时候,选择的时区是亚洲上海,Linux默认的BIOS时间(也称:硬件时间)也是UTC时间

在重启之后,系统时间会和硬件时间同步,如果两者不一致,会以硬件时间为标准进行时间的校准

所以,之前设置的时区和时间就失效了

UTC

UTC:协调世界时(Universal Time Coordinated) 英文缩写

是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度

UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示

北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整

3.查看时间的相关命令

# 查看当前系统时间
date


# 查看当前硬件时间
hwclock

二:解决方法

1.方法1 - 定时同步

① 把当前时区调整为上海(东8区)

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

② 同步标准时间

# 安装时间同步工具ntpdate(如已安装,请忽略)
yum install ntpdate -y


# 用工具ntpdate同步时间
ntpdate us.pool.ntp.org

③ 加入定时计划,每隔5分钟 同步1次时间

# 配置定时任务
crontab -e

# 按i进入插入模式,输入以下内容
0-59/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP

2.方法2

① 编辑时间配置文件

# 用vim打开配置(如果没装vim,可以把vim换成vi)
vim /etc/sysconfig/clock


# 按i进入插入模式,输入以下内容(# 注释可以不复制)
ZONE="Asia/Shanghai"
UTC=false	# 设置为false,硬件时钟不于utc时间一致
ARC=false

② 将Linux时区设置为上海

# 建立同步连接
ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime

③ 同步标准时间

# 安装时间同步工具ntpdate(如已安装,请忽略)
yum install ntpdate -y


# 用工具ntpdate同步时间
ntpdate us.pool.ntp.org

④ 设置硬件时间和系统时间一致并校准

/sbin/hwclock --systohc
原文地址:https://www.cnblogs.com/xuexianqi/p/14157057.html