OpenEuler欧拉使用方法(四)设置日期和时间之一chrony

OpenEuler欧拉使用方法(四)设置日期和时间之一chrony

文章目录

  • OpenEuler欧拉使用方法(四)设置日期和时间之一chrony
    • 摘要
    • 前言
    • chrony 命令集
    • 一、 安装系统时配置自动通过网络同步时间
    • 二、chronyd程序
      • 1、查看chronyd运行状态:
      • 2、重启chronyd服务
      • 3、停止chronyd服务
      • 4、启动chronyd服务
      • 5、查看程序版本
    • 三、实操案例
      • 1、获取系统时钟状态
      • 2、快速校正时间命令
      • 3、显示远端时间源服务器和状态
      • 4、测试NTP信源值
      • 5、运行的过程中添加NTP服务器池
      • 6、开启自动从网络获取时间。
    • 四、总结

摘要

前言

本文实例操作系统版本:openEuler 22.03 LTS SP2
本章分两部分讲解时间配置:
1、第一节介绍安装操作系统时的网络时间配置及安装后使用chrony配置网络时间服务器;
2、下一节介绍三个基础命令timedatectl、date、hwclock。

chrony 命令集

chrony 看似简单实则还是很丰富的一套时间管理系统。下面列出chrony涉及的绝大多数命令,但是本篇文章不会全部进行解读。

System clock
    tracking
    makestep
    waitsync

Time sources
    sources [-a] [-v] :
    sourcestats [-a] [-v]
    selectdata [-a] [-v]
    selectopts address|refid [+|-option]
    reselect
    reselectdist distance

NTP sources
    activity
    authdata [-a]
    ntpdata [address]
    add peer name [option]…​
    add pool name [option]…​
    add server name [option]…​
    delete address
    burst good/max [mask/masked-address]
    burst good/max [masked-address/masked-bits]
    burst good/max [address]
    maxdelay address delay
    maxdelaydevratio address ratio
    maxdelayratio address ratio
    maxpoll address maxpoll
    minpoll address minpoll
    minstratum address minstratum
    offline [address]
    offline [masked-address/masked-bits]
    offline [mask/masked-address]
    online [address]
    online [masked-address/masked-bits]
    online [mask/masked-address]
    onoffline
    polltarget address polltarget
    refresh
    reload sources
    sourcename address

Manual time input
    manual on
    manual off
    manual delete index
    manual list
    manual reset
    settime time

NTP access
    accheck address
    clients [-p packets] [-k] [-r]
    serverstats
    allow [all] [subnet]
    deny [all] [subnet]
    local [option]…​
    local off
    smoothing
    smoothtime activate
    smoothtime reset

Monitoring access
    cmdaccheck address
    cmdallow [all] [subnet]
    cmddeny [all] [subnet]

Real-time clock (RTC)
    rtcdata
    trimrtc
    writertc

Other daemon commands
    cyclelogs
    dump
    rekey
    reset sources
    shutdown

Client commands
    dns option
    timeout timeout
    retries retries
    keygen [id [type [bits]]]
    exit
    quit
    help

一、 安装系统时配置自动通过网络同步时间

在安装系统的时候是可以配置网络自动同步时间的。其实现程序使用的chrony(NTP),配置方法如下:

在安装界面的第二页,选择“时间和日期”:
OpenEuler欧拉使用方法(四)设置日期和时间之一chrony_第1张图片
接着在下面的页面进入服务器的配置:
OpenEuler欧拉使用方法(四)设置日期和时间之一chrony_第2张图片

然后在接下来的页面里填写服务器:
OpenEuler欧拉使用方法(四)设置日期和时间之一chrony_第3张图片
配置完之后点“好”结束配置。之后返回上一页打开“网络时间”的开关:
OpenEuler欧拉使用方法(四)设置日期和时间之一chrony_第4张图片
在安装完系统之后,这个配置会保存在:/etc/chrony.conf 文件中。这是chrony的配置文件。

[root@localhost ~]# cat /etc/chrony.conf
# These servers were defined in the installation:
pool pool.ntp.org iburst
pool 203.107.6.88 iburst
pool 139.199.215.251 iburst

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Require authentication (nts or key option) for all NTP sources.
#authselectmode require

# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys

# Save NTS keys and cookies.
ntsdumpdir /var/lib/chrony

# Insert/delete leap seconds by slewing instead of stepping.
#leapsecmode slew

# Get TAI-UTC offset and leap seconds from the system tz database.
#leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking
[root@localhost ~]#

二、chronyd程序

chrony是一个NTP服务器的应用,由两个程序组成:chronyd和chronyc。chronyd是守护进程,并且是服务器和客户端一体的程序,一方面对外提供服务,一方面作为客户端自动从网络更新系统的时间;chronyc是命令行程序是用来显示和配置chrony程序的。

1、查看chronyd运行状态:

[root@localhost ~]# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-12-12 19:29:09 CST; 3h 2min ago
       Docs: man:chronyd(8)
             man:chrony.conf(5)
    Process: 844 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 873 (chronyd)
      Tasks: 1 (limit: 47156)
     Memory: 3.9M
     CGroup: /system.slice/chronyd.service
             └─ 873 /usr/sbin/chronyd

1212 19:29:09 localhost systemd[1]: Starting NTP client/server...
1212 19:29:09 localhost chronyd[873]: chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +>
1212 19:29:09 localhost chronyd[873]: Frequency 4.053 +/- 0.345 ppm read from /var/lib/chrony/drift
1212 19:29:09 localhost systemd[1]: Started NTP client/server.
1212 19:29:18 localhost.localdomain chronyd[873]: Selected source 203.107.6.88
1212 19:31:30 localhost.localdomain chronyd[873]: Source 84.16.67.12 replaced with 185.209.85.222 (pool.ntp.org)
1212 20:01:39 localhost.localdomain chronyd[873]: Source 185.209.85.222 replaced with 193.182.111.141 (pool.ntp.org)
[root@localhost ~]#

2、重启chronyd服务

[root@localhost ~]# systemctl restart chronyd

3、停止chronyd服务

[root@localhost ~]# systemctl stop chronyd

4、启动chronyd服务

[root@localhost ~]# systemctl start chronyd

5、查看程序版本

[root@localhost ~]# chronyc -v
chronyc (chrony) version 4.1 (+READLINE +SECHASH +IPV6 +DEBUG)
[root@localhost ~]#

三、实操案例

1、获取系统时钟状态

[root@localhost ~]# chronyc tracking
Reference ID    : CB6B0658 (203.107.6.88)
Stratum         : 3
Ref time (UTC)  : Sat Dec 16 03:10:51 2023
System time     : 0.000292877 seconds slow of NTP time
Last offset     : +0.000137733 seconds
RMS offset      : 0.000705308 seconds
Frequency       : 2.001 ppm fast
Residual freq   : +0.001 ppm
Skew            : 1.051 ppm
Root delay      : 0.054567307 seconds
Root dispersion : 0.002763330 seconds
Update interval : 258.0 seconds
Leap status     : Normal
[root@localhost ~]#

关键字的解释如下:
Reference ID : 这里显示的是同步到服务器引用的ID(IP地址的十六进制表达)和名称(同步服务器IP地址),对于IPV4这里显示IP地址,对于IPV6协议这里显示地址的MD5和的前32位.
Stratum : 这个数值表示距离NTP服务器有多少跳。但是这只是一个参考值,如果在追踪的过程中有超时的跳点则测试会被停止,所以这个值并不准。
Ref time (UTC) : 这是最后一次时间同步事件发生的时间,这是一个UTC时间,如果换算成北京时间需要加8小时。
System time : 这是当前NTP时钟(虚拟时钟)与系统时钟之间的偏移量。通常chronyd会自动纠正这个便宜,但是这个纠正过程是逐渐达成的。如果急于纠正偏移需要使用 makestep 命令来达成,具体用法请向下看。
Last offset : 这是上一次纠正偏移量时纠偏的量。
RMS offset : 这是几次纠偏的平均值
Frequency : 这是指如果 chronyd 不进行校正,系统时钟发生错误的概率。
Residual freq : 我理解这是一个差值的概率表达。
Skew : 我理解这是偏离值的概率表达
Root delay : 网络延迟总和。
Root dispersion : 这个参数我还没理解,大概是和精度有关系。
Update interval : 这是最后两次时钟更新之间的时间间隔。
Leap status : 当前时间工作状态(三个状态:Normal, Insert second, Delete second)

2、快速校正时间命令

chronyc makestep
这个命令有两种使用方式,一种不使用任何参数的使用方式:

[root@localhost ~]# chronyc makestep
200 OK
[root@localhost ~]#

第二种是带参数的:

chronyc makestep burst stepping-threshold number good/max [mask/masked-address]
chronyc makestep burst stepping-threshold number good/max [masked-address/masked-bits]
chronyc makestep burst stepping-threshold number good/max [address]

burst 是参数的命令关键词,stepping-threshold:步进阈值(以秒为单位);number:时钟更新次数;good/max:是 “从源地址获取的优良度量数量/尝试的最大次数” ; [address] NTP源地址。如下案例:

[root@localhost ~]# chronyc makestep 0.1 1 burst 2/3 203.107.6.88
200 OK
[root@localhost ~]#

3、显示远端时间源服务器和状态

以下案例分别使用两个命令参数:

[root@localhost ~]# chronyc sources -a
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- dns1.synet.edu.cn             2   9   377    83  -1593us[-1593us] +/-   22ms
^* dns2.synet.edu.cn             1  10   367  1018  -2563us[-2888us] +/-   20ms
^+ 119.28.206.193                2  10   377   312  +1527us[+1527us] +/-   51ms
^- electrode.felixc.at           2   9   337  1000    +87ms[  +87ms] +/-  204ms
^+ 203.107.6.88                  2  10   377    39  -4121us[-4121us] +/-   28ms
^- 139.199.215.251               2  10   363    62  +1560us[+1560us] +/-   64ms
[root@localhost ~]# chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- dns1.synet.edu.cn             2   9   377    91  -1593us[-1593us] +/-   22ms
^* dns2.synet.edu.cn             1  10   367  1026  -2563us[-2888us] +/-   20ms
^+ 119.28.206.193                2  10   377   320  +1527us[+1527us] +/-   51ms
^- electrode.felixc.at           2   9   337  1008    +87ms[  +87ms] +/-  204ms
^+ 203.107.6.88                  2  10   377    47  -4121us[-4121us] +/-   28ms
^- 139.199.215.251               2  10   363    69  +1560us[+1560us] +/-   64ms
[root@localhost ~]#

4、测试NTP信源值

用来显示指定NTP源最近一次有效的测量值和其他NTP相关信息。

[root@localhost ~]# chronyc ntpdata 139.199.215.251
Remote address  : 139.199.215.251 (8BC7D7FB)
Remote port     : 123
Local address   : 192.168.5.234 (C0A805EA)
Leap status     : Normal
Version         : 4
Mode            : Server
Stratum         : 2
Poll interval   : 10 (1024 seconds)
Precision       : -23 (0.000000119 seconds)
Root delay      : 0.002075 seconds
Root dispersion : 0.039413 seconds
Reference ID    : 647A24C4 ()
Reference time  : Sun Dec 17 14:08:21 2023
Offset          : +0.000972630 seconds
Peer delay      : 0.060926426 seconds
Peer dispersion : 0.000000186 seconds
Response time   : 0.000021115 seconds
Jitter asymmetry: +0.00
NTP tests       : 111 111 1111
Interleaved     : No
Authenticated   : No
TX timestamping : Kernel
RX timestamping : Kernel
Total TX        : 49
Total RX        : 45
Total valid RX  : 45
[root@localhost ~]#

5、运行的过程中添加NTP服务器池

注意,这个命令只在内存中添加,并不会写入到 chrony.conf 配置文件中。如果需要永久配置,还是需要更改 chrony.conf 。

[root@localhost ~]# chronyc add pool 134.175.254.134 maxsources 4 iburst
200 OK
[root@localhost ~]# 

6、开启自动从网络获取时间。

    这里请注意,本案例会涉及到下一节才会讲到的命令:timedatectl 。
    下面在使用timedatectl 配置时间的时候提示“设置时间失败:开启了自动时间同步功能”。这是因为在安装操作系统的时候开启的自动同步功能。

[root@localhost ~]# timedatectl set-time "2023-12-15"
Failed to set time: Automatic time synchronization is enabled

    可以通过 timedatectl 来关闭自动时间同步功能。

[root@localhost ~]# timedatectl set-ntp no

    查看配置结果:

[root@localhost ~]# timedatectl
               Local time:2023-12-16 20:55:28 CST
           Universal time:2023-12-16 12:55:28 UTC
                 RTC time:2023-12-16 12:55:28
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

    显示当前时间

[root@localhost ~]# date
20231216日 星期六 20:56:09 CST

    手动设置系统时间

[root@localhost ~]# timedatectl set-time "2023-12-15"

    显示配置成功的系统时间

[root@localhost ~]# date
20231215日 星期五 00:00:03 CST

    快速同步时间

[root@localhost ~]# chronyc makestep
506 Cannot talk to daemon

    提示出错,因为现在系统自动时间同步没有开启,所以使用 “chronyc makestep” 这个命令会报错。
    开启系统自动时间同步:

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

    然后再进行快速同步:

[root@localhost ~]# chronyc makestep
200 OK

    查看同步后的系统时间:

[root@localhost ~]# date
20231216日 星期六 20:57:47 CST
[root@localhost ~]#

四、总结

    chrony 命令是看似简单实则非常强大的,我只是简要介绍一些日常可能会用到的方法。在 chrony 命令集中有全部的命令。

你可能感兴趣的:(服务器,linux,网络,运维)