0%

CentOS 系统时间

为保证各项服务正常运行,其中系统时间的准确性是至关重要的。在 CentOS-7 之后的版本默认使用 chrony 做系统时间同步服务,而 CentOS-6 版本中使用 ntp 服务来同步时间。

chrony 采用 Client-Server(C/S) 架构,对应服务端: chronyd,客户端: chronyc

说明:本文是在 CentOS-8 系统上进行的测试

监听端口

  • 323/udp

配置文件

vi /etc/chrony.conf

使用

chrony 服务默认已启动并已加入开启启动项,可通过 systemctl status chronyd 查看服务运行状态。

1. 设置时区

​ 可通过 timedatectl 命令,查看当前系统的时区。

​ 若当前时区不是亚洲/上海时区,可以用如下命令设置

1
timedatectl set-timezone Asia/Shanghai
2. 系统时间同步

vi /etc/chrony.conf 配置使用 阿里云 时间同步服务器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.centos.pool.ntp.org iburst
server ntp.aliyun.com 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

# 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

为使配置生效,重启服务 systemctl restart chronyd

可通过 date 命令检查当前系统时间。

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看时间同步源:
chronyc sources -v
# 查看时间同步源状态:
chronyc sourcestats -v
# 设置硬件时间
# 硬件时间默认为UTC:
timedatectl set-local-rtc 1
# 启用NTP时间同步:
timedatectl set-ntp yes
# 查看所有可用的时区
timedatectl list-timezones
# 查看亚洲时区
timedatectl list-timezones | grep -E "Asia/.*"
# 校准时间服务器:
chronyc tracking

疑难杂症

  • 若服务器时间正常,日志记录时间异常,可通过以下命令重启日志服务。

    1
    systemctl restart rsyslog
  • date 需与 timedatectl 时间保持一致。

参考