CentOS7 NTP客户端的时间同步详解

news2024/10/5 5:29:29

需求:在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的有效行(默认有3-4行server有效行去向公网同步时间,需注释掉)。如

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

#restrict default kod nomodify notrap nopeer noquery 注释此行内容  作为ntp服务器可注释掉(取消默认不行其他主机连接同步时间)

server x.x.x.x iburst   同步时间服务ip  客户端只是配这个就可以


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

systemctl  start  ntpd        #启动ntpd服务
systemctl  start  ntpdate
systemctl enable  ntpd        #将ntpd添加到开机启动项
systemctl enable  ntpdate
systemctl is-enabled ntpd        #查看是否在开机启动项
systemctl is-enabled ntpdate
systemctl 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 -l
0 0 * * 0 /usr/sbin/ntpdate -u 172.29.120.12 || /usr/sbin/ntpdate -u 172.29.12.120


例子:

查看服务状态 ntpstat ntptime timedatectl 三个命令看状态


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服务已经存在(ntpdate:the NTP socket is in use, exiting)
报错的原因是因为客户端有ntpd服务在运行。因此需要继续执行,必须加-u参数,如
update -u 172.29.120.12


问题3、启动了ntpd服务,却未执行过同步时间操作。
需要检查ntpd服务是否生效、并应用是否也生效了。如


查看状态 ntpstat ntptime timedatectl


附录
1、npq -p 执行结果的参数解释

ntpq -p命令列出了所有作为时钟源校正过本地NTP服务器时钟上层NTP服务器的列表,每一列的含义分别如下:
remote:响应请求的NTP服务器的名称(IP地址或域名),带“”的表示本地NTP服务器与该服务器同步
refid:远程NTP服务器使用的上一级ntp服务器的IP地址
st:远程NTP服务器的级别,由于NTP是层级结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低,级别可以设定为1~16级。为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器。
t:本地NTP服务器与远程NTP服务器的通信方式。u:单播;b:广播;I:本地
when:上次成功请求后到现在的秒数
poll:本地NTP服务器与远程NTP服务器同步的时间间隔。
reach:这是一个八进制的值,用来测试衡量前八次查询是否成功和服务器连接。377表示都成功,0表示不成功
delay:网络延时,单位为微秒(μs)
offset:本地NTP服务器与远程NTP服务器的时间偏移,单位为毫秒(ms)。offset越接近于0,主机与NTP服务器的时间越接近
jitter:查询偏差的分布值,用于表示远程NTP的网络延时是否稳定,单位为微秒(μs)*

2、timedatectl 命令的讲解
timedatectl输出解析

1.1.Local time
本地时间,初始值来自于RTC,由内核维护,系统启动之后和RTC就没有关系,通常等于RTC+时区值(如上图的本地时间=RTC+8)

1.2.Universal time
系统时间永远是UTC,在应用程序使用的时候转换为本地时间

1.3.RTC(real-time clock)time
指硬件时间,一般是主板上的特殊电路,专用用于记录时间,有电池供电,不受服务器和操作系统的开启关闭影响。也称作BIOS时间。
需要注意的是:当/etc/sysconfig/clock 文件中 UTC=true时, BIOS 使用UTC时间; UTC=false时, BIOS 使用本地时间。
hwclock --localtime #显示 BIOS 中实际的时间
hwclock --systohc #根据系统时间设置硬件时间

1.4.Time zone
本地时区,即服务器所在的时区,在中国通常使用Asia/Shanghai
timedatectl set-timezone “Asia/Shanghai” #设置时区为上海

1.5.NTP enable
状态为“yes”,表示开启NTP同步。
网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正。
timedatectl set-ntp true #开启ntp同步
timedatectl set-ntp false #禁止ntp同步

1.6.NTP synchronized
为“yes”,表示NTP同步完成。

1.7.RTC in local TZ
设置RTC时间,为"no"表示未设置
timedatectl set-local-rtc 1 #将RTC设置为本地时间
timedatectl set-local-rtc 0 #将RTC设置为UTC

2.2、timedatectl常用命令
timedatectl set-time 15:58:30 #只设置时间
timedatectl set-time 20151120 #只设置日期
timedatectl set-time ‘16:10:40 2015-11-20’ #设置时间和日期

2.3 相关命令

rpm -qi ntp 查看版本   最新

date  系统时间
clock  硬件时间

 
date -s  设置系统时间
clock  -w 系统时间同步到硬件时间

ntpdate IP  同步ntp服务器时间

chkconfig --list ntpd 查看开机启动
 
chkconfig ntpd on  开机启动

ntpq -p  客户端查看同步情况 *号代表同步成功
ntpstat

ps aux | grep ntpd  查看进程


ss -ntul 看进程端口
netstat -anp | grep   ntpd
ss -ntulp  看进程端口

crontab -l; echo "*/60 * * * * /usr/sbin/ntpdate x.x.x.x(ntp服务器IP) >>/tmp/ntp.log  设置定时同步
crontab -l   查看计划任务

echo "*/60 * * * * /usr/sbin/ntpdate x.x.x.x(ntp服务器IP) >>/tmp/ntp.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1085579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring6使用启用Log4j2日志框架

文章目录 Log4j2日志概述1. 引入Log4j2依赖2. 加入日志配置文件3. 测试 Log4j2日志概述 在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息&#xff…

小型企业必备的重要项目管理软件工具推荐!

大多数项目管理软件都包含有助于规划、协作和进度管理的工具。下面列出了在小型团队的项目管理软件中寻找的基本功能。 1、应用内交流 优秀的项目管理软件允许应用程序内通信、向团队成员发送通知以及使用内置聊天功能促进安全协作。 2、仪表盘 仪表板提供个人、团队和部门…

二十、自定义类型:枚举和联合

1 枚举类型 1.1 枚举类型的声明 例: enum Day//星期 {Mon,Tues,Wed,Thur,Fri,Sat,Sun }; enum Sex//性别 {MALE,FEMALE,SECRET }; enum Color//颜⾊ {RED,GREEN,BLUE };以上定义的enum Day,enum Sex,enum Color都是枚举类型。{…

超赞的AI文案生成器!真的什么都能写~

姐妹们,这个AI文案生成器真的太强了! 种草笔记、爆款标题、短视频脚本、工作总结、自定义小说生成......只要输入关键词,就能生成一篇专业又优秀的文章,真的太绝了~ 小橙需:写作火火 安卓ios都可用 使用简单&#…

快上车,LLM专列:想要的资源统统给你准备好了

如有转载,请注明出处。欢迎关注微信公众号:低调奋进。​ (嘿嘿,有点标题党了​。最近整理了LLM相关survey、开源数据、开源代码等等资源,后续会不断丰富内容,省略大家找资料浪费时间。闲言少叙,正式发车&a…

【苍穹外卖 | 项目日记】第二天

前言: 坦率的讲今天有点水,课也多,上了一天课,中午下课后和晚上十一点多跑完步回来写了两个接口 目录 前言: 今日完结任务: 今日收获: 1.实现了公共字段填充功能 2.实现了文件上传接口 杂项…

35道Rust面试题

这套Rust面试题包括了填空题、判断题、连线题和编码题等题型。 选择题 1 ,下面哪个是打印变量language的正确方法? A,println("{}", language); B,println(language); C,println!("{}", langu…

【已修复】vcruntime140.dll有什么用,vcruntime140.dll缺失如何修复

我是网友,今天非常荣幸能够在这里和大家分享关于电脑找不到vcruntime140.dll无法继续执行代码的解决方法。我相信,在座的许多朋友都曾遇到过这个问题,而今天我将为大家介绍五种有效的解决方法。 首先,让我们来了解一下vcruntime1…

stm32mp157中断简单应用

设置按键中断,按键1按下,LED亮,再按一次,灭 按键2按下,蜂鸣器响。再按一次,不响 按键3按下,风扇转,再按一次,风扇停 main.c #include "gpio.h" #include &…

99 # mongo 的基本安装和配置

关系型数据库和非关系型数据库 MySQL Oracle SqlServer 用一种关系模型来组织数据的数据库(查询方便,不方便拓展)nosql mongo redis memcached (不同于传统的关系数据库) mongo 特点 分布式:文档类型&am…

地下城堡3魂之诗阵容搭配攻略

在地下城堡3魂之诗游戏中,拥有一个合理搭配的阵容非常关键,可以让角色能力发挥最大化。以下是建议的阵容搭配及攻略: 关注【娱乐天梯】,获取内部福利号 1.核心成员(2名) 在阵容中选择两个输出型角色作为核心成员,他们的…

Vue实战项目1:跑马灯效果

Vue实战项目1&#xff1a;跑马灯效果 目录 一、效果预览二、编写思路三、整体代码展示 一、效果预览 二、编写思路 两个按钮用于启动和停止&#xff0c;绑定点击事件&#xff0c;使用v-on&#xff0c;可以简写为 <input type"button" value"跑起来" c…

扒一扒集成运放uA741的内部电路

uA741是一款常见的集成运放芯片,这个是uA741的内部电路。 Q1与Q2组成的差动对是整个741运算放大器的输入端,这两个三极管是射极跟随器的连接方式,特点是输入电阻大,输出电阻小。 Q1和Q2的输出接至共基极组态的PNP晶体管Q3和Q4

ECharts 双y轴时如何处理0刻度线对齐的问题

ECharts 多y轴时如何处理0刻度线对齐的问题 用echarts做双&#xff08;多&#xff09;轴时发现其中某轴有负数时0刻度线不对齐。 解决 首先判断是否有负数 const hasNegative Math.min(...seriesData[0], ... seriesData[1]);如果有的话&#xff0c;我的配置是这样的 yAxi…

Python利用jieba分词提取字符串中的省市区(字符串无规则)

目录 背景库&#xff08;jieba&#xff09;代码拓展结尾 背景 今天的需求就是在一串字符串中提取包含&#xff0c;省、市、区&#xff0c;该字符串不是一个正常的地址;,如下字符串 "安徽省、浙江省、江苏省、上海市,冷运标快首重1kg价格xx元,1.01kg(含)-5kg(不含)续重价…

RabbitMQ详细使用

工作队列 注意事项&#xff1a;一个消息只能被处理一次&#xff0c;不可以处理多次 轮询分发信息 消息应答 消费者在接收到消息并且处理该消息之后&#xff0c;告诉rabbitmq它已经处理了&#xff0c;rabbitmq可以把该消息删除了。倘若mq没有收到应答&#xff0c;mq会将消息转…

车载相关名词--车载数据中心方案

车载数据中心方案 参考链接:https://zhuanlan.zhihu.com/p/600031042?utm_id=0 下面这张图是小鹏汽车嵌入式系统高级专家 唐黾 在同ARM一起的一个演讲稿中发布的,是一张未来车载数据中心单芯片方案构想图。主要针对的是智驾域和座舱域融合方案,下面对如上图的内外部组件及…

telnet 连接闪退

目录 问题查找问题解决参考 问题 在使用 telnet 连接板子时&#xff0c;出现了 telnet 界面一闪而逝的情况。正常板子开机&#xff0c;查看其存在 telnetd 进程&#xff0c;而使用 telnet 后&#xff0c;登录界面一闪而逝&#xff0c;板子上的 telnetd 进程消失。 查找问题 …

go cpu、内存监控、性能分析:PProf

PProf PProf 是什么 PProf是 golang 官方提供的性能调优分析工具&#xff0c;用于分析和优化Go程序的性能。 PProf通过收集和分析程序的运行时数据来生成性能分析报告。它使用Go语言的运行时特性&#xff0c;如代码注释和特殊的程序运行标记&#xff0c;来收集性能数据。PPr…

【数据结构】二叉树--链式结构的实现 (遍历)

目录 一 二叉树的遍历 1 构建一个二叉树 2 前序遍历 3 中序遍历 4 后续遍历 5 层序 6 二叉树销毁 二 应用(递归思想) 1 二叉树节点个数 2 叶子节点个数 3 第K层的节点个数 4 二叉树查找值为x的节点 5 判断是否是二叉树 一 二叉树的遍历 学习二叉树结构&#xff0…