1. 怎样开启linux系统下的ntp同步请求
Linux 系统安装配置NTP时间服务器
NTP(The Network Time Protocol) 是网络时间协议,用以同步网络内计算机的时间。
它通过udp包交换,用特定算法进行协商,从而把计算机上的时间与时间服务器上的
时间保持一致。通过互联网它支持的误差是10毫秒,局域网则可以达到200微秒。
NTP时间服务器分为多层,从0层到4层,每层依次与上一次服务器同步,最高层的服务器
则直接连接一个高精度的时钟设备,比如原子钟、GPS或者电波时等。
自己搭建时间服务器需要指定一个上层的时间服务器,然后它可以向局域网内的其它机器
提供同步服务。
详细信息可以见:
http://en.wikipedia.org/wiki/Network_Time_Protocol
安装NTP Server
Linux系统内核提供了对NTP的支持,因此只需要再安装一个NTP Server的守护进程即可。
常用的ntpd由ntp.org提供。
下载安装ntpd的稳定版本。目前是ntp-4.2.6p3.
http://www.ntp.org/downloads.html
示范脚本::
wget http://www.eecis.udel.e/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p3.tar.gz
tar zxf ntp-4.2.6p3.tar.gz
mkdir /app/ntp
cd ntp-4.2.6p3
./configure --prefix=/app/ntp --enable-all-clocks --enable-parse-clocks
make clean && make check && make && make intall
注意:/app/ntp为ntpd的安装后文件路径
配置
1. 配置文件位置为::
/etc/ntp.conf
2. 修改配置允许局域网内机器与该服务器进行时间同步。
将下面语句::
restrict default kod nomodify notrap nopeer noquery
修改为::
restrict default nomodify
3. 修改上一层的时间服务器。
ntp.org现在提供NTP POOL PROJECT,即ntp 服务器池项目。在中国区域,配置如下即可::
server 0.cn.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
其中0.cn 是中国服务器池,后面两个是亚洲的服务器池。
最新列表见:
http://www.pool.ntp.org/zone/cn
启动 NTP 服务器
进入ntpd安装后的路径,如/app/ntd, 启动参数如下::
./ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid -l /app/ntp/log/ntp.log
注意启动后需要等几分钟,否则其它机器来同步时会得到
no server suitable for synchronization found
的错误。
Linux客户端机器配置
客户端机器使用ntpdate 程序来执行同步。 格式如下::
ntpdate ntp-server-ip
如果需要配置计划任务,命令如下::
# 查看是否已经添加时间同步的计划任务
cat /etc/crontab
# 如果没有则添加下列行,每30分钟同步一次:
echo '*/30 * * * * root /usr/sbin/ntpdate 10.20.219.43' >> /etc/crontab
# 将计划任务设为自动,默认是启动的【可选】
chkconfig crond on
# 启动计划任务服务
service crond restart
# 有些机器需要设置时区为中国
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2. ntp时间同步配置
vi /etc/ntp.conf 添加内网ntp服务器。
systemctl start ntpd 启动ntpd服务
ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。
刚启动的时候,一般是:
连接并同步后
*表示目前使用的ntp server;
st:即stratum阶层,值越小表示ntp serve的精准度越高;
when:几秒前曾做过时间同步更新的操作;
Poll表示,每隔多少毫秒与ntp server同步一次;
reach:已经向上层NTP服务器要求更新的次数;
delay:网络传输过程钟延迟的时间;
offset:时间补偿的结果;
jitter:Linux系统时间与BIOS硬件时间的差异时间
3. 【ntpdate】CentOS7.x上使用ntpdate同步ntp服务器
NTP服务器顾名思义就是时间同步服务器(Network Time Protocol),Linux下的ntp服务器配置相对来说都比较容易,但在Linux下有一个弊端, 不同时区或者说是时间相差太大的无法同步 ,所以在配置ntp服务器之前需要把时间配置成相同的。
NTP时钟同步方式说明
NTP在linux下有两种时钟同步方式,分别为直接同步和平滑同步:
直接同步
使用ntpdate命令进行同步,直接进行时间变更。如果服务器上存在一个12点运行的任务,当前服务器时间是13点,但标准时间时11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。
平滑同步
使用ntpd进行时钟同步,可以保证一个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间比较长。
标准时钟同步服务
http://www.pool.ntp.org/zone/cn
这个网站包含全球的标准时间同步服务,也包括对中国时间的同步,对应的URL为:cn.pool.ntp.org
在其中也描述了ntp配置文件中的建议写法:
server 1.cn.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
实验室集群没有联网,我们需要搭建ntp服务器并进行时间同步。
现使用的系统为centos7.2,机器使用情况如下表所示,这里以192.168.1.102为ntp server,192.168.1.104为client对时间进行同步。
NTP server 192.168.1.102
NTP client 192.168.1.104
1.在集群中所有节点上安装ntp
# yum -y install ntp
2.所有节点设置时区,这里设置为中国所用时间
# timedatectl set-timezone Asia/Shanghai
3.在server节点上启动ntp服务
# systemctl startntpd
# systemctl enable ntpd
4.在server节点上设置现在的准确时间
# timedatectl set-time HH:MM:SS
5.在server节点上设置其ntp服务器为其自身,同时设置可以接受连接服务的客户端,是通过更改/etc/ntp.conf文件来实现,其中server设置127.127.1.0为其自身,新增加一个 restrict 段为可以接受服务的网段
# vim /etc/ntp.conf
6.重启ntpd服务
# systemctl restart ntpd
# timedatectl
NTP synchronized: yes
启用ntpd后,服务器就开启了ntpd自动同步,无法使用 timedatectl set-time HH:MM:SS重新设置时间。
如果要使用timedatectl set-time HH:MM:SS 重新设置时间:
# systemctl stop ntpd
# timedatectl set-ntp false
# timedatectl set-time HH:MM:SS
# hwclock -w
# systemctl start ntpd
1.客户端时区需要和服务端保持一致,否则无法同步时间
# timedatectl set-timezone
Asia/Shanghai
2.安装同步软件包
# yum -y install ntpdate
3. 修改/etc/sysconfig/ntpdate,让ntpdate每次同步时间之后把时间写入hwclock,相当于命令hwclock -w
将最后一行SYNC_HWCLOCK=no修改为:SYNC_HWCLOCK=yes
# vim /etc/sysconfig/ntpdate
4.客户端定时任务配置
# crontab -e
59 23 * * * /sbin/ntpdate 192.168.1.102
设置为每天23:59分执行,重启crond服务
######################
定时任务基本格式 :
***** command
分时日月周命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
################################
5.重启定时任务
# systemctl restart crond.service
4. 【ntp】NTP服务器时间同步三部曲
在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)。
系统时钟就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值。
在Linux下,系统时间在开机的时候会和RTC硬件时钟同步(synchronization),之后也就 各自独立运行 了。
系统运行期间,则通过其他硬件时钟源进行tick计算(tsc、hpet、acpi_pm)。
RTC(real time clock)通过主板(CMOS)的电磁供电,精确到秒。用户可手工设置RTC时间。
1. 强制跃迁同步
ntpdate -u xx.xx.xx.xx
xx.xx.xx.xx 为ntpServer地址,如 ntp.aliyun.com
注意:此时本机的ntpd不能启动,否则执行 ntpdate会报socket占用
2. 将系统时间同步到硬件时钟
hwclock -w
3. 启动ntpd,后续平滑同步
systemctl start ntpd
注意:此时本机的不能在ntpd运行期间执行ntpdate,否则会报socket占用
NTP服务器时间监控脚本
https://www.yaoyan.me/2021/03/ntp-time-monitor/
使用Prometheus监控时间指标
http://www.panooo.com/prometheus_ntp
Linux时间子系统及node-exporter对时钟的监控
https://www.cnblogs.com/danny-djy/p/14132436.html
真正让你明白Linux NTP(包括历史、参数解释、安装配置)
https://www.aboutyun.com/thread-11395-1-1.html
GaussDB(DWS)NTP变更指南
https://bbs.huaweicloud.com/blogs/detail/211403
NTP时钟同步异常告警处理
https://support.huawei.com/enterprise/zh/knowledge/KB1000029535
chrony服务时间同步实验
https://www.yaoyan.me/2021/03/Chrony/
NTP 服务概述
https://cloud.tencent.com/document/proct/213/30392
Linux 实例:配置 NTP 服务
https://cloud.tencent.com/document/proct/213/30393
Linux 实例:将 ntpdate 转换为 ntpd
https://cloud.tencent.com/document/proct/213/45361
Redis 3.2.8集群部署实验
https://www.yaoyan.me/2017/03/redis-cluster-setup/
Linux dns服务 bind安装配置
https://www.yaoyan.me/2017/06/LinuxBind/
printf格式化输出
https://www.yaoyan.me/2015/07/shell_printf/
NTP协议与SNTP协议的区别
https://www.ruijie.com.cn/fw/wt/18857/
SNTP- Simple Network Time Protocol简单网络时间协议
https://www.syn029.com/h-nd-1881.html
https://hongwangle.com/terms-definition/time-server-terms-analysis/sntp-simple-network-time-protocol/
5. linux ntp服务器的时间怎么同步
同步Internet时间,首先安装时间同步软件
apt-get install ntpdate
手动同步系统时间
ntpdate NTP服务器地址
6. 如何在linux 上配置NTP 时间同步
Linux停止ntp服务即可关闭时间同步。①关闭ntp服务(临时设置重启后自动开启) service ntpd stop②设置永久关闭ntp服务(重启后也是关闭的) chkconfig ntpd off
7. linux系统如何设置时间同步
linux自带了ntp服务
--
/etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。
配置文件就是/etc/ntp.conf。
为了测试,设置让node2
--
192.168.1.102和node1
--
192.168.1.101做时间同步。
第一步,
node1做time
server,node1本身不和其他机器时间同步,就是取本地时间。
所以,先把node1机器的时间调准了:
[root@node1
~]date
-s
08/03/2011
[root@node1
~]date
-s 11:12:00
[root@node1
~]clock
-w
[root@node1
~]hwclock
--systohc
后两个命令是把设置的时间写到硬件时间中去(也就是cmos里面的时间)。
第二步,
然后将node1配置成一个time
server,修改/etc/ntp.conf,
[root@node1
~]vi
/etc/ntp.conf
其他的配置不怎么需要改,只需要关注restrict的配置:
1.
注释掉原来的restrict
default
ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp
server的功能,所以需要注释掉。
2.
加入:restrict
192.168.1.0
mask
255.255.255.0
--
让192.168.1.0/24网段上的机器能和本机做时间同步
3.
这样就可以了,记得下面的:
server
127.127.1.0
#
local
clock
fudge
127.127.1.0
stratum
10
这两行需要,这是让本机的ntpd和本地硬件时间同步。
当然,我们也可以添加server
xxx.xxx.xxx.xxx,让他和其他的time
server时间同步。
4.
/etc/init.d/ntpd
restart
5.
chkconfig
ntpd
on
6.
修改iptables配置,将tcp和udp
123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。
第三步,
这样node1就成为一台time
server了,现在我们配置node2这台机器,也是修改/etc/ntp.conf
,
[root@node2
~]vi
/etc/ntp.conf
1.
restrict
default
ignore这行保留为注释状态,因为sales不需要做time
server
2.
注释掉server
127.127.1.0,
fudge
127.127.1.0
stratum
10这两行,因为这台机器不需要和本地硬件时钟同步了。
3.
加入server
192.168.1.101这行,和node1机器同步。
这样就ok了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time
server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做这个时间
第四步,将ntpdate放到crontab中定期步也是可以的
[root@node2
~]#vi
ntpupdate.sh
/usr/sbin/ntpdate
192.168.1.101
[root@node2
~]#chmod
755
ntpupdate.sh
[root@node2
~]#crontab
-e
*/1
*
*
*
*
/root/ntpupdate.sh
[root@node2
~]#/etc/init.d/crond
restart