怎样开启linux系统下的ntp同步请求?

怎样开启linux系统下的ntp同步请求?,第1张

Linux 系统安装配置NTP时间服务器

一、关于NTP时间服务器

NTP(The Network Time Protocol) 是网络时间协议,用以同步网络内计算机的时间。 它通过udp包交换,用特定算法进行协商,从而把计算机上的时间与时间服务器上的时间保持一致。通过互联网它支持的误差是10毫秒,局域网则可以达到200微秒。

NTP时间服务器分为多层,从0层到4层,每层依次与上一次服务器同步,最高层的服务器则直接连接一个高精度的时钟设备,比如原子钟、GPS或者电波时等。

怎样安装NTP Server:

Linux系统内核提供了对NTP的支持,因此只需要再安装一个NTP Server的守护进程即可。常用的ntpd由ntporg提供。

二、怎么确认linux系统有没有开启ntp服务?

service ntpd status  查看此服务有没有运行,设置:图形化界面--左上角时间---点击就可以知道。

Linux下glibc提供了我们事先编译好的许多timezone文件, 他们就放在/usr/share/zoneinfo这个目录下,这里基本涵盖了大部分的国家和城市

# ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GB Indian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire Iran MST PRC UTC
Arctic/ EET GMT iso3166tab MST7MDT PST8PDT WET
Asia/ Egypt GMT0 Israel Navajo right/ W-SU
Atlantic/ Eire GMT-0 Jamaica NZ ROC zonetab
Australia/ EST GMT+0 Japan NZ-CHAT ROK Zulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong Libya Poland Turkey
CET Europe/ HST MET Portugal UCT
在这里面我们就可以找到自己所在城市的time zone文件 那么如果我们想查看对于每个time zone当前的时间我们可以用zdump命令

# zdump Hongkong
Hongkong Fri Jul 6 06:13:57 2007 HKT
那么我们又怎么来告诉系统我们所在time zone是哪个呢 方法有很多,这里举出两种 第一个就是修改/etc/localtime这个文件,这个文件定义了我么所在的local time zone 我们可以在/usr/share/zoneinfo下找到我们的time zone文件然后拷贝去到/etc/localtimezone(或者做个symbolic link) 假设我们现在的time zone是BST(也就是英国的夏令时间,UTC+1)
# date
Thu Jul 5 23:33:40 BST 2007
我们想把time zone换成上海所在的时区就可以这么做
# ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2007
这样时区就改过来了(注意时间也做了相应的调整) 第二种方法也就设置TZ环境变量的值 许多程序和命令都会用到这个变量的值 TZ的值可以有多种格式,最简单的设置方法就是使用tzselect命令
# tzselect

TZ='America/Los_Angeles';export TZ
tzselect会让你选择所在的国家和城市(我省略了这些步骤),最后输出相应的TZ变量的值那么如果你设置了TZ的值之后时区就又会发生变化
# date
Thu Jul 5 15:48:11 PDT 2007
通过这两个例子我们也可以发现TZ变量的值会override /etc/localtime 也就是说当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone 所以你想永久修改time zone的话那么可以把TZ变量的设置写入/etc/profile里 好了现在我们知道怎么设置时区了,下面我们就来看看如何设置Linux的时间吧 3 Real Time Clock(RTC) and System Clock 说道设置时间这里还要明确另外一个概念就是在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock) 硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因 系统时钟就是 *** 作系统的kernel所用来计算时间的时钟 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值 在Linux下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了 那么既然两个时钟独自运行,那么时间久了必然就会产生误差了,下面我们来看一个例子
# date
Fri Jul 6 00:27:13 BST 2007
# hwclock --show
Fri 06 Jul 2007 12:27:17 AM BST -0968931 seconds
通过hwclock --show命令我们可以查看机器上的硬件时间(always in local time zone), 我们可以看到它和系统时间还是有一定的误差的, 那么我们就需要把他们同步 如果我们想要把硬件时间设置成系统时间我们可以运行以下命令
# hwclock --hctosys
反之,我们也可以把系统时间设置成硬件时间
# hwclock --systohc
那么如果想设置硬件时间我们可以开机的时候在BIOS里设定也可以用hwclock命令
# hwclock --set --date="mm/dd/yy hh:mm:ss"
如果想要修改系统时间那么用date命令就最简单了
# date -s "dd/mm/yyyy hh:mm:ss"
现在我们知道了如何设置系统和硬件的时间 但问题是如果这两个时间都不准确了怎么办 那么我们就需要在互联网上找到一个可以提供我们准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP了 注意接下去我们所要说的同步就都是指系统时间和网络服务器之间的同步了 4 设置NTP Server前的准备 其实这个标题应该改为设置"NTP Relay Server"前的准备更加合适 因为不论我们的计算机配置多好运行时间久了都会产生误差,所以不足以给互联网上的其他服务器做NTP Server 真正能够精确地测算时间的还是原子钟 但由于原子钟十分的昂贵,只有少部分组织拥有, 他们连接到计算机之后就成了一台真正的NTP Server 而我们所要做的就是连接到这些服务器上同步我们系统的时间,然后把我们自己的服务器做成NTP Relay Server再给互联网或者是局域网内的用户提供同步服务 好了,前面讲了一大堆理论,现在我们来动手实践一下吧 架设一个NTP Relay Server其实非常简单,我们先把需要的RPM包装上
# rpm -ivh ntp-422p1-5el5rpm
那么第一步我们就要找到在互联网上给我们提供同步服务的NTP Server >vi /etc/ntpconf 添加内网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硬件时间的差异时间


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13412846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存