需求:在CentOS7下配置NTP客户端同步时间服务
简介:
NTP服务是为了时钟同步使用,特别在一些实时性数据库场景中非常重要。
Centos7下默认使用chronyd服务代替过渡ntpd服务,因此经常遇到大部分人还是记住ntpd服务而不去配置chronyd服务,因此经常在centos7下遇到无法使用ntp服务或ntp服务存在一些问题。以下就centos7下配置和使用ntp服务、ntp验证、时区等配置进行讲解。

本篇所有操作和讲解只针对NTP客户端,不涉及ntp-server操作

CentOS7下安装和配置NTP(Centos6、redhat系列亦可以参考,不冲突)

    CentOS6和6之前的版本默认使用ndpd服务做客户端去向ntp-server同步时间。

1、安装ntp和ntpdate两个rpm包。
使用yum install ntp、yum install ntpdate命令执行安装操作(本次省略)
2、配置ntp客户端文件【/etc/ntp.conf】中的server项。如

server 172.29.12.120  perfer      #提供ntp-server的主机地址server  172.29.120.12 perfer      #提供ntp-server的主机地址

3、启动ntpd服务、并添加至开机启动项。如

systemctl  start  ntpd        #启动ntpd服务systemctl  start  ntpdatesystemctl enable  ntpd        #将ntpd添加到开机启动项systemctl enable  ntpdatesystemctl is-enabled ntpd        #查看是否在开机启动项systemctl is-enabled ntpdatesystemctl list-unit-files | grep ntp     #查看是否在开机启动项systemctl status ntpd                     #查看ntpd服务的状态

4、验证

 ntpq -p       #查看该主机使用的ntp-server情况和同步延时等信息; timedatectl      #查看ntpd服务或chronyd服务是否生效。只有centos7、redhat7、ubuntu14等以上(含)才有该命令;

5、其他配置(或添加时间同步的计划任务)
使用ntpdate命令也可以执行ntp时间同步,不需要ntp客户的ntpd服务。如

ntpdate 172.29.120.12     #向172.29.120.12的ntpserver主机同步本地系统时间。ntpdate -u  172.29.120.12  ##同上,-u参数是可以在客户端ntpd服务启动时同时执行的命令。

计划任务中的时间同步,同样的效果。也可以和客户端的ntpd服务同时存在。

crontab -l0 0 * * 0 /usr/sbin/ntpdate -u 172.29.120.12 || /usr/sbin/ntpdate -u 172.29.12.120

例子:

CentOS7下使用NTP遇到的问题

1、在CentOS7下使用NTP时,客户端ntpd服务添加到开机启动项中了,但主机系统启动后ntpd服务还是停止状态(dead),无法正常启动。
解决以上现象有两种方法 :
方法一
1.通过命令 systemctl enable ntpd 设置NTP服务开机自启动。
2.重启虚拟机后查看 服务运行状态 systemctl status ntpd ,发现服务并没有成功启动。
3.查看chrony是否被设置为开机自启动。通过指令 systemctl is-enabled chronyd
或systemctl list-unit-files | grep chrony 查看,发现这个服务已经被设置为开机自启动所以导致NTP服务的自启动失败。

4.所以要把 chrony 的自启动去掉。执行指令 systemctl disable chronyd 。
5.重启虚拟机, 执行 systemctl status ntpd ,问题解决。
systemctl list-unit-files|grep ntpd
systemctl list-unit-files|grep chrony

方法二
需要开机自启动某服务,第一个想到的当然是开机启动自定义脚本
在Centos之前版本只要在 /etc/rc.d/rc.local 文件中加入 启动服务的命令,当虚拟机重启时就会执行该文件中的命令,服务也就启动了。但是但Centos7版本,这个文件的权限被降低了,所以当你打开这个文件时,注释中很友好的提示让你给这个文件赋权,以确保它有可执行权限。chmod +x /etc/rc.d/rc.local 。
所以只要把指令写到这个文件中,就可以在开机时启动服务或者让虚拟机做其它事情。
chmod +x /etc/rc.d/rc.local
echo "systemctl start ntpd" >> !$

2、ntpdate命令执行报错,提示ntpd服务已经存在。

©著作权归作者所有:来自51CTO博客作者chier11的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. Dnsyo-在全球超过1500个DNS服务器上检查你的域名解析记录
  2. 5 分钟搭建 Node.js 微服务原型
  3. PHP基础:数据类型的演示
  4. 一行代码引来的安全漏洞就让我们丢失了整个服务器的控制权
  5. php运行过程和数据类型
  6. tcping测试服务器TCP端口
  7. ] Android(安卓)高手进阶篇 1-Service
  8. LayoutInflater(布局服务)
  9. Android(安卓)Tasks and Back Stack

随机推荐

  1. Android 获取当前日期 时间
  2. android文件缓存,并SD卡创建目录未能解决
  3. 阻止android软键盘自动弹出
  4. Android开发技术周报 Issue#54
  5. Android layout
  6. gradle 配置文件 build.gradle 属性详解
  7. Android的WindowManager解析
  8. android设置背景半透明效果
  9. android 发送自定义广播以及接收自定义广
  10. Android布局概览