RHEL7.4 192.168.100.1 作为时间服务器,其它主机到这台来同步时间。
时间服务器安装及配置:
#yum install chrony --RHEL7默认已安装chrony,而没有安装ntpd.
#systemctl status chronyd --查看chronyd服务状态
#systemctl enable chronyd --开机启动
#vi /etc/chrony.conf --修改配置文件
#server 0.rhel.pool.ntp.org iburst --注释这4行,由于是内网环境,所以无法跟外部时间服务器进行时间同步。 #server 1.rhel.pool.ntp.org iburst #server 2.rhel.pool.ntp.org iburst #server 3.rhel.pool.ntp.org iburst server 192.168.100.1 iburst --添加这一行,表示与本机同步时间 local stratum 10 --该行取消注释
# Allow NTP client access from local network. allow 192.168.100.0/24 --允许哪些服务器到这台服务器来同步时间
|
#systemctl restart chronyd --修改完配置文件后,重启chronyd服务
[root@rhel1 ~]# netstat -antulp | grep chronyd
udp 0 0 0.0.0.0:123 0.0.0.0:* 705/chronyd
udp 0 0 127.0.0.1:323 0.0.0.0:* 705/chronyd
udp6 0 0 ::1:323 :::* 705/chronyd
|
1.显示系统的当前时间和日期
timedatectl
# timedatectl status
# 两条命令效果等同
[root@rhel1 ~]# timedatectl Local time: Sat 2017-10-07 10:55:22 CST Universal time: Sat 2017-10-07 02:55:22 UTC RTC time: Sat 2017-10-07 02:55:22 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: no
NTP synchronized: yes RTC in local TZ: no DST active: n/a
|
注意NTP synchronized值,只有时间服务器自己同步完成时间之后,才能为其它服务器提供时间同步服务。
2.设置日期与时间
timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "YYYY-MM-DD"
timedatectl set-time "HH:MM:SS"
3.查看所有可用的时区
timedatectl list-timezones
# 亚洲
timedatectl list-timezones | grep -E "Asia/S.*"
4.设置时区
timedatectl set-timezone Asia/Shanghai
5.设置硬件时间
# 硬件时间默认为UTC
timedatectl set-local-rtc 1
# hwclock --systohc --localtime
# 两条命令效果等同
6.启用NTP时间同步
timedatectl set-ntp yes
# yes或no; 1或0也可以
问题:不明白这里启用ntp时间同步有啥意义。难道是说可以在时间服务器上都安装chronyd和ntpd服务来同时提供时间服务吗????如果设置为yes,手动设置时间则报错。看本文结尾。
7、查看时间源信息
[root@rhel1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* rhel1.rusky.com 10 7 377 22m -3603ns[ -19us] +/- 32us
[root@rhel1 ~]# chronyc sources -v
210 Number of sources = 1
.-- 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
===============================================================================
^* rhel1.rusky.com 10 7 377 22m -3603ns[ -19us] +/- 32us
[root@rhel1 ~]#
|
客户端时间同步配置:
1.yum install chrony –y
2.修改配置文件
[root@rhel2 ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org iburst --注释这4行
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.100.1 iburst ---添加该行,表示到这台服务器去同步时间。
|
3.重启chronyd并设置开机启动
[root@rhel2 ~]# systemctl restart chronyd.service
[root@rhel2 ~]# systemctl enable chronyd.service
4. 查看时间同步状态
[root@rhel2 ~]# timedatectl Local time: Sat 2017-10-07 11:15:43 CST Universal time: Sat 2017-10-07 03:15:43 UTC RTC time: Sat 2017-10-07 03:02:26 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: no
NTP synchronized: yes --为yes表示已同步 RTC in local TZ: no DST active: n/a
|
重启chronyd服务后,需要过几分钟才会自动完成同步。
如果需要手动,可使用下面的命令:
#ntpdate 192.168.100.1 如果同步失败,则可能 是服务端的时间未同步。即服务端NTP synchronized 为no。
============================
手动修改时间时,必须把NTP enabled 设置为no.
[root@rhel1 ~]# date
Sun Oct 8 11:00:51 CST 2017
[root@rhel1 ~]# timedatectl Local time: Sat 2017-10-07 11:31:45 CST Universal time: Sat 2017-10-07 03:31:45 UTC RTC time: Sun 2017-10-08 03:01:57 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: no
NTP synchronized: no RTC in local TZ: no DST active: n/a
|
如果把NTP enabled 修改为yes时,表示开启自动同步时间,此时,是不能手动修改时间的。
如果为No时,表示关闭自动同步时间。
[root@rhel1 ~]# timedatectl set-ntp yes
[root@rhel1 ~]# timedatectl set-time "2017-10-08 11:00:50"
Failed to set time: Automatic time synchronization is enabled
[root@rhel1 ~]# timedatectl set-ntp no
[root@rhel1 ~]# timedatectl set-time "2017-10-08 11:00:50"
[root@rhel1 ~]# date
Sun Oct 8 11:00:51 CST 2017