linux时间管理

Linux时间设置 date、hwclock、timedatectl

date 查看及设置系统时间:

[root@localhost ~]# date
Thu Jan 13 16:30:27 CST 2022
[root@localhost ~]# date -s "20220113 16:33:00"
Thu Jan 13 16:33:00 CST 2022

hwclock设置系统时间:

[root@localhost ~]# hwclock
2022-01-13 16:37:35.195393+08:00
//同步硬件时间到系统时间
[root@localhost ~]# hwclock -s
[root@localhost ~]# hwclock --hctosys
//同步系统时间到硬件时间
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock --systohc

timedatectl时间管理:

//查询时间及时区
[root@localhost ~]# timedatectl
               Local time: Thu 2022-01-13 16:53:10 CST
           Universal time: Thu 2022-01-13 08:53:10 UTC
                 RTC time: Thu 2022-01-13 16:53:09
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes
//查询并设置时区
[root@localhost ~]# timedatectl list-timezones
[root@localhost ~]# timedatectl set-timezone "Asia/Shanghai"
//设置日期和时间
[root@localhost ~]# timedatectl set-time '16:10:40 2015-11-20'
[root@localhost ~]# timedatectl set-time UTC
//设置硬件时间为本地时间
[root@localhost ~]# timedatectl set-local-rtc 1
[root@localhost ~]# timedatectl set-local-rtc 0
//

Linux时间同步 ntpdate、ntpd、chronyd

ntpdate时间同步:

[root@localhost ~]# ntpdate 192.168.0.1
[root@localhost ~]# ntpdate time.ntp.org

ntpd时间同步(端口:123):

//配置文件:/etc/ntp.conf
1. 关于权限设定部分
权限的设定主要以restrict这个参数来设定,主要的语法为:
restrict IP mask netmask_IP parameter
其中IP可以是软件地址,也可以是default,default就类似0.0.0.0。至于paramter则有:
  ignore:关闭所有的 NTP 联机服务
  nomodify:表示Client端不能更改Server端的时间参数
  notrust:该Client除非通过认证,否则该Client来源将被视为不信任网域
  noquery:不提供Client端的时间查询
  notrap:不提供trap这个远程事件登入
如果paramter完全没有设定,那就表示该 IP (或网域)"没有任何限制"

restrict default nomodify notrap noquery   # 关闭所有的NTP要求封包
restrict 127.0.0.1   # 这是允许本机查询
restrict 192.168.0.1 mask 255.255.255.0 nomodify   # 在192.168.0.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了

2. 上层主机的设定
要设定上层主机主要以server这个参数来设定,语法为:
server [IP|HOST Name] [prefer]
Server后面接的就是上层Time Server,后面加上perfer的话,那表示我们的NTP主机主要以该部主机来作为时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,可以使用driftfile来规定我们的主机,在与Time Server沟通时所花费的时间,可以记录在driftfile后面接的文件内,例如下面的范例中,我们的NTP server与cn.pool.ntp.org联机时所花费的时间会记录在/var/lib/ntp/drift文件内。
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server cn.pool.ntp.org prefer

3. 其他设置值,以系统默认值即可
server 127.127.1.0    # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
//确认ntp已经同步了时间
[root@localhost ~]# ntpstat
synchronised to NTP server (202.120.2.101) at stratum 4
    time correct to within 557 ms
    polling server every 64 s
# 该指令可列出NTP服务器是否与上层联机。由上述输出结果可知,时间校正约为557*10(-6)秒,且每隔64秒会主动更新时间。
//ntpq命令
[root@localhost ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*stratum2-1.ntp. 195.91.239.8     2 u   24   64    1  258.761  -16.146  16.491
 ntp6.flashdance 194.58.202.148   2 u   23   64    1  330.604   47.243  13.014
 a.chl.la        131.188.3.222    2 u   22   64    1  187.224   41.501   1.249
 139.199.215.251 100.122.36.196   2 u   21   64    1   44.815   29.043   7.562

remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由"+"则代表目前正在作用钟的上层NTP,如果是"*"则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的操作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间

# ntp服务默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件。在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

chronyd时间同步(端口:323):

//配置文件:
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

# 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

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

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

# Select which information is logged.
#log measurements statistics tracking

配置参数:

参数 参数说明
server 该参数可以多次用于添加时钟服务器,必须以"server "格式使用。
stratumweight stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,CentOS中设置为0,让chronyd在选择源时忽略源的层级。
driftfile chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。
rtcsync rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)
allow/deny 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。
cmdallow/cmddeny 指定哪个IP地址或哪台主机可以通过chronyd使用控制命令。
bindcmdaddress 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。
makestep 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。
//查看时间同步源:
[root@localhost ~]# chronyc sources -v
210 Number of sources = 4
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- 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
===============================================================================
^* 202.118.1.130                 1   7   377   118  -1213us[-1553us] +/-   20ms
^- time.cloudflare.com           3   7   337    47    +48ms[  +48ms] +/-  166ms
^- ntp7.flashdance.cx            2   8   357    46    -13ms[  -13ms] +/-  229ms
^+ 139.199.215.251               2   8   377    57  -7428us[-7428us] +/-   32ms

//立即手工同步
[root@localhost ~]# chronyc -a makestep
200 OK

//查看时间同步源状态:
[root@localhost ~]# chronyc sourcestats -v
210 Number of sources = 4
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
202.118.1.130               6   5   646    -10.813     97.702    -40us  5068us
time.cloudflare.com        11   5  1037     +0.211     13.118    +52ms  2892us
ntp7.flashdance.cx         22  12   32m     +0.089     13.917    -26ms  8756us
139.199.215.251            25  11   32m     -0.098      3.164   -514us  2062us

//校准时间服务器:
[root@localhost ~]# chronyc tracking
Reference ID    : CA760182 (202.118.1.130)
Stratum         : 2
Ref time (UTC)  : Thu Jan 13 15:54:22 2022
System time     : 0.000000001 seconds fast of NTP time
Last offset     : -0.003181520 seconds
RMS offset      : 0.002209083 seconds
Frequency       : 7.816 ppm fast
Residual freq   : -0.157 ppm
Skew            : 3.514 ppm
Root delay      : 0.044469427 seconds
Root dispersion : 0.005420812 seconds
Update interval : 129.1 seconds
Leap status     : Normal

chronyc命令参数说明:

参数 参数说明
accheck 检查NTP访问是否对特定主机可用
activity 该命令会显示有多少NTP源在线/离线
add server 手动添加一台新的NTP服务器
clients 在客户端报告已访问到服务器
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息

你可能感兴趣的