实验目的
系统时间,硬件时间的设定和修改:ntp、chrony实现时间同步
前提准备
可用的Centos6、7系统
Cetnos6:192.168.37.6
Centos:192.168.37.7
实验步骤
1、时间同步前期准备工作
[1] date命令查看系统时间
[root@Centos6 ~]# dateTue Jan 29 14:32:00 CST 2019
[2] 查看硬件时间
[root@root ~]# clockTue 29 Jan 2019 02:49:13 PM CST -0.334741 seconds
[3] 修改系统时间为2018年
[root@Centos6 ~]# date -s '-1 year'[root@Centos6 ~]# dateTue Jan 29 14:33:00 CST 2019
[4] 此时硬件时间没有改变,若要修改硬件时间:
[root@Centos6 ~] clock -w
2、ntp软件实现时间同步
centos6上默认安装了ntp软件包(包括客户端和服务器端),但是ntp同步需要⼀定时间才能完全同步时间的,⽽chrony同步时间⽐ntp快。Centos默认安装了chronyd服务。
[1] 在Centos6上查看ntp软件、修改配置文件
[root@Centos6 ~]#rpm -qa ntpntp-4.2.6p5-15.el6.centos.x86_64
[2] 修改ntp.conf文件
vim /etc/ntp.conf
其中:server 172.16.0.1 iburst[root@Centos6 ~]# service ntpd start 启动服务
[root@Centos6 ~]# chkconfig ntpd on 开机启动
[root@Centos6 ~]# ss -unl 监听了udp的123端口;
[root@Centos6 ~]# ntpq -p 查看同步状态
说明:172.16.0.1是时间服务器的ip地址;iburst是加速同步时间。如果时间相差较⼤,是不能完成实时同步的。
[3] ntpdate:立即同步时间
ntp时间相差较大,是不能完成实时同步,那么用ntpdate命令来完成:
[root@Centos6 ~]# ntpdate 120.25.108.11 阿里云时间同步服务器
[4] 根据上例,Centos6开启了ntpd服务,也可以当做时间服务器被它人使用
在Centos上,模拟错误时间,方便演示:
[root@Centos ~]# date -s "-1 year"
[root@Centos ~]# ntpdate 192.168.37.629
Jan 15:43:59 ntpdate[8825]: step time server 192.168.35.6 offset 31536000.533587 sec
[5] ntp充当服务器
[root@Centos ~]# vim /etc/ntp.conf
其中:
server 172.16.0.1 iburstrestrict
default nomodify notrap nopeer noquery 改为 restrict default nomodify
[root@Centos ~]# service ntpd start 启动服务
[root@Centos ~]# chkconfig ntpd on 开机启动
[root@Centos ~]# ss -unl 监听了udp的123端口;
3、在Centos上chrony软件实现时间同步
chrony同ntp,也可配置成客户端和服务器端两种。
[1] 查看chrony
[root@Centos ~]# rpm -qi chrony
其中:
server 172.16.0.1 iburst
说明: /usr/bin/chronyc是客户端程序; /usr/sbin/chronyd是服务器端查询;
/usr/lib/systemd/system/chronyd.service是服务控制⽂件。
[2] 配置chrony为客户端,配置3个时间服务器地址
[root@Centos ~]# vim /etc/chrony.conf
其中:
server 172.16.0.1 iburst
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
[root@Centos ~]# systemctl start chronyd 启动服务
[root@Centos ~]# systemctl enable chronyd 开机启动
[root@Centos ~]# ss -untl 监听udp的323端口。
[root@Centos ~]# date 时间会立即同步完成。
[3] chronyc客户端⼯具
[root@Centos ~]# chronyc 进入交互式命令行;
chronyc> help 查看帮助子命令;
chronyc> sources -v 同步时钟;
chronyc> quit 退出
非交互式命令:
[root@Centos ~]# chronyc sources -v
查看开机是否启动:
[root@Centos ~]# systemctl status chronyd
[root@Centos ~]# systemctl enable chronyd 设置开机自动启动:
[4] 在centos6上安装chrony软件包:
[root@Centos ~]# yum -y install chrony
[root@Centos ~]# service ntpd stop
查看ntpd是否开机启动:
[root@Centos ~]# chkconfig --list ntpd
把Centos当中时间服务器:
[root@Centos ~]# vim /etc/chorny.conf
其中:
server 192.168.37.7 iburst
[root@Centos ~]# service chornyd start
[root@Centos ~]# chronyc sources -v
[5] 在Centos上配置,充当时间同步服务器:
[root@Centos ~]# vim /etc/chrony.conf
其中:
server 172.16.0.1 iburst
allow 192.168.37.0/24
local stratum 10
[root@Centos ~]#systemctl restart chronyd
说明:
allow 192.168.37.0/24表示哪些主机可以向该主机同步时间;
allow 0.0.0.0/0表示允许所有主机向该主机同步时间;
local stratum 10表示当互联网不能访问时间服务器时,仍然使用本机时间提供时间服务。
[6] 再回到centos6,同步:
[root@Centos ~]# chronyc sources -v 同步时间较慢。
显示:^* 192.168.37.7 即为成功。
[7] 总结:实现了使⽤⼀台主机向互联⽹上的时间服务器同步时间,在局域⽹内部,由其他主机向该主机同步时间即可。
在初始化脚本里,修改chrony配置文件。
sed 's/^server.*/#&/' /etc/chrony.conf
echo server 172.16.0.1 iburst >> /etc/chrony.conf
4、timedatectl命令
[1] 列出所有时区
[root@Centos ~]# timedatectl list-timezones
[2] 查看当前时区状态
[root@Centos ~]# timedatectl status
[3] 修改时区
[root@Centos ~]# timedatectl set-timezone Asia/Shanghai
[root@Centos ~]# date
[4] 查看有效的配置⽂件
[root@Centos ~]# grep -Ev "^(#.*|)$" /etc/chrony.conf
或:
[root@Centos ~]# grep -Ev "^#|^$" /etc/chrony.conf