[centos][ntp][administrator] chrony ntp

时间:2023-03-09 07:31:31
[centos][ntp][administrator] chrony ntp

以下内容,适用于 CentOS 7 (systemd 体系)

一。 首先,确认你是否启用了 ntp 服务:

[root@nlb2-liantiao ~]# timedatectl
Local time: Tue -- :: CST
Universal time: Tue -- :: UTC
RTC time: Tue -- ::
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

二。 确认你的时区,是不是你的时区,见  (一)

  如果不是,这样改:

[root@nlb2-liantiao ~]# timedatectl list-timezones |grep -i shanghai
Asia/Shanghai
[root@nlb2-liantiao ~]# timedatectl set-timezone Asia/Shanghai

三。确定你用了哪个ntp util

  目前常用的,有两个: ntp和chrony。按理说,你至少应该装了一个

[root@nlb2-liantiao ~]# rpm -qa |grep "ntp\|chrony"
ntpdate-4.2.6p5-.el7.centos..x86_64
ntp-4.2.6p5-.el7.centos..x86_64 或 [root@test ~]# rpm -qa |grep "ntp\|chrony"
chrony-2.1.-.el7.centos.x86_64

四。服务是否启用。

  ntp的话,只需要启用 ntpdate服务就可以了。

  ntpdate和ntpd两个服务的区别:

    ntpdate是oneshot service,开机启动一次,直接快速完成同步。之后再不管了。

    ntpd是 always online的,缓慢同步。适用于时间高度敏感的,高精度的应用场景。

[root@nlb2-liantiao ~]# systemctl list-unit-files |grep ntp
ntpd.service enabled
ntpdate.service disabled 或 [root@D129 ~]# systemctl list-unit-files |grep "chronyd\|ntp"
chronyd.service enabled

五。

  如果两类service都没有,yum装一下就可以了。 之后使用如下命令enable

[root@D129 ~]# timedatectl set-ntp yes

六。如果还不好用,可能是网络问题,或者 DNS问题。

七。当ntp设置成功以后,如果你发现RTC 时间是不对的,这个时候,你还需要将BIOS时间修改一下。

可以使用,hwclock命令将当前系统时间回写至BOIS。

[root@D129 ~]# hwclock -w --utc

或

[root@D129 ~]# hwclock -w --localtime

主板内写入utc时间还是localtime这取决于你的个人决定,你的这个选择会被记录在文件 /etc/adjust 里。

需要主要的 windows 默认认为BIOS time是 localtime。所以,如果你是双系统boot的话,当选择写入utc time后,windows显示的时间也会变成utc time了。

八。汇总以上内容,回过头来。我们能发现,这里一共涉及了三个时间。

  universal time,  全球标准时间,就是UTC时间,就是格林尼治时间。

  local time, 就是OS时间。

  rtc time, 就是 BIOS时间。A real-time clock (RTC) is a computer clock (most often in the form of an integrated circuit) that keeps track of the current time.

  以上三个时间,是应该保持有机(就是做好时区信息翻译)同步的。

  那么:

    NTP 服务就是用来做 UTC 和OS time的同步的.

    但是,RTC和OS之前的同步,如(七)所属,确实需要hwclock工具完成.不过这个server是什么呢?以前见到过,这次,没找到....以后再来更新.  

完。