因为经常使用虚拟机做实验,但是有时用,有时不用就造成了本地时间和internet时间不同步的问题,也会出现虚拟机在更新软件源或者下载软件的时候特别的慢。

一边总结一下知识,一边解决问题!

1、时间知识

1.1 系统时间与硬件时间

 系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。

 硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而定)。

1.2 UTC时间与本地时间

UTC时间:Coordinated Universal 8 e2 i( H7 t0 / Time 世界协调时间(又称世界标准时间、世界统一时间),在一般精度要求下,它与GMT(Greenwich Mean Time,格林威治标准时间)是一样的,其实也就是说 GMT≈UTC,但 UTC 是以原子钟校准的,更精确。

本地时间:由于处在不同的时区,本地时间一般与UTC是不同的,换算方法就是本地时间 = UTC + 时区 或 UTC = 本地时间 - 时区。时区东为正,西为负,例如在中国,本地时间都使用北京时间,在linux上显示就是 CST(China Standard Time,中国标准时,注意美国的中部标准时Central Standard Time也缩写为CST,与这里的CST不是一回事!),时区为东八区,也就是 +8 区,所以 CST=UTC+(+8小时) 或 UTC=CST-(+8小时)。

2、常用时间命令

2.1 date命令

这个命令就非常简单了,就一个date就行了,再加上其他复杂参数也没意义。

image.png

2.2 timedatectl命令

timedatectl命令是用来查看和设置时间和时区的。用起来也非常简单!

1.显示系统的当前时间和日期
# timedatectl  status   #结果中RTC time就是硬件时钟的时间。

2.Linux系统上的time总是通过系统的timezone设置的,查看当前时区:
# timedatectl | grep Time

3.查看所有可用的时区:
# timedatectl list-timezones

4.根据地理位置找到本地的时区:
# timedatectl list-timezones |  egrep  -o “Asia/B.*”
# timedatectl list-timezones |  egrep  -o “Europe/L.*”
# timedatectl list-timezones |  egrep  -o “America/N.*”

5.在Linux中设置本地时区,使用set-timezone开关:

# timedatectl set-timezone “Asia/shagnhai”

6.可以使用timedatectl命令设置系统的日期和时间:

# timedatectl set-time 20:46:30 #只设置时间的话可以使用set-time开关以及HH:MM:SS(小时,分,秒)的时间格式。

7.只设置日期的话可以使用set-time开关以及YY:MM:DD(年,月,日)的日期格式。

# timedatectl set-time 20200224

8.设置日期和时间:

# timedatectl set-time '20:47:36 2020-02-24'

9.设置硬件时钟为UTC可以使用 set-local-rtc boolean-value选:

# timedatectl | grep local    #首先确定硬件时钟是否设置为本地时区:
# timedatectl set-local-rtc 1  #将硬件时钟设置为本地时区:
# timedatectl set-local-rtc 0  #将硬件时钟设置为UTC:

10.NTP时间
# 启动NTP时间同步(启用NTP服务或者Chrony服务):timedatectl set-ntp true
# 禁用NTP时间同步:timedatectl set-ntp false

image.png

2.3 hwclock命令

hwclock命令即hardwareclock系统硬件时间。

hwclock

显示硬件时间

hwclock -w

将系统时间写入到系统硬件当中

2.4 ntpdate

ntpdate 是一个linux时间同步服务软件,如果没有安装,请 yum install -y ntpdate

image.png

3、修复时间问题

首先,同步网络时间

ntpdate time1.aliyun.com

然后,同步硬件时间

hwclock -w

Snipaste_20200224_220232.JPG

4、设置时间自动同步

设置时间同步有两种思路:一是设置定时任务、二是安装NTP自动更新

4.1 设置定时任务更新时间

使用crontab来实现自动更新时间。

crontab -l  # 表示列出所有的定时任务
crontab -r  # 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除
crontab -e  # 创建一个定时任务

定义规则 整点同步

crontab -e

0 * * * * root ntpdate time1.aliyun.com >> /tmp/autontpdate 2>&1;hwclock -w 

image.png

4.2 安装NTP更新时间

首先要先安装ntp

yum install ntp

配置开机时自动运行时间服务

chkconfig ntpd on

开启ntp服务

cd /etc/
/bin/systemctl start ntpd.service

查看一下是否启动

ps -aux| grep ntpd

同步时间

ntpdate -u ntp1.aliyun.com
ntpq  -p

image.png

illust_77702463_20191114_181846.jpg

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

只有把抱怨环境的情绪,化为上进的力量,才是成功的保证!