linux与ntp同步
‘壹’ linux集群系统时间同步
环境准备:
要做到服务器集群的时间同步,集群中各台机器的时区必须相同的,我们在国内就使用中国时区,如果你的机器的时区不是"Asia/Shanghai",需要修改时区
CentOS 中时区是以文件形式存在,当前正在使用的时区文件位于
/etc/localtime ,其他时区文件则位于 /usr/share/zoneinfo 下,中国时区的文件全路径是 /usr/share/zoneinfo/Asia/Shanghai
要更改时区,直接使用如下命令就OK
需要使用 tzselect 命令去生成时区文件,生成好的时区文件就在/usr/share/zoneinfo 目录下,具体步骤去下:
使用 date -s 命令来修改系统时间
让集群所有的服务器的时间同步,就用远程连接工具连接所有服务器,然后在所有的服务器中同时执行 date -s 命令设置时间,然后在所有的服务器中执行 hwclock -w 命令即可
美国标准技术院时间服务器:time.nist.gov(192.43.244.18)
上海交通大学网络中心NTP服务器地址:ntp.sjtu.e.cn(202.120.2.101)
中国国家授时中心服务器地址:cn.pool.ntp.org(210.72.145.44)
若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器
<1> 使用命令: crontab -e
<2> 然后往里加入一行内容
上面的配置表示,每隔十分钟从 202.120.2.101 该时间服务器同步一次时间。
<3> 保存退出
以上两步操作可以让node01这个服务器每隔10分钟去指定的服务器同步时间,如果需要让集群中的所有服务器(hadoop01-hadoop04)时间同步,那么每台服务器都要做以上两步操作。
node01的IP为192.168.21.101,让它作为时间服务器,192.168.21.0局域网内的所有服务器都向它同步时间,而node01这台时间服务器本身,向外网时间服务器同步时间(比如中国国家授时中心服务器)
我用node01
我去掉了所有的默认注释,对其中的修改写了自己的注释,没有写注释的是默认配置
因为ntpd服务开启之后,就不能手动同步时间了,那么为什么要先手动同步时间呢?
当server(中国国家授时中心服务器)与client(node01)之间的时间误差过大时(可能是1000秒),node01去同步时间可能对系统和应用带来不可预知的问题,node01将停止时间同步!所以如果发现node01启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,此时需要先手动进行时间同步!
看到红色框中的内容,表示连接和监听已正确
这里的前4行就是我们配置的4个中国国家授时中心的服务器的信息
最后一行就是本地时间服务的信息
下面对每个列的意义进行说明:
同样,服务启动后需要等待5-10分钟才能看到这个正常的信息
到这里,我们局域网内的时间服务器node01就已经配置完毕了
文件内容如下:
同样,没有写注释的都是默认的配置
原因同(5)
到这里,利用局域网内一台时间服务器来同步整个集群时间的全部配置就已经完成
说明:若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器,另外需要关闭各服务器的防火墙,才能进行时间同步
参考文章:
内网环境NTP服务及时间同步(CentOS6.x)配置和部署
配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考)
‘贰’ 如何使用NTP同步Linux系统时间
解决方法:
1. 创建一个文件/etc/cron.daily/timeupdate:
___FCKpd___0nbsp;sudo nano /etc/cron.daily/timeupdate
2. 输入以下内容:
ntpdate ntp.ubuntu.com
3. 保存文件后,还需要赋予其可执行权限:
___FCKpd___2nbsp;sudo chmod 755 /etc/cron.daily/timeupdate
这样,系统就可以每天去ntp.ubuntu.com获取时间(/etc/cron.daily/目录下的所有任务都会被每天执行一次),并校准服务器本身的时间。如果你担心时间获取失败,则可以将多个NTP服务器添加到/etc/cron.daily/timeupdate文件中:
ntpdate ntp.ubuntu.com pool.ntp.org
‘叁’ 【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
‘肆’ 配置Linux的时钟同步
Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.org等, 各Linux发行版都有自己的NTP官方服务器。身在中国,使用这些都会有高延迟,但对时钟同步这件事来说影响不大。
在某些环境下,比如公司内网、云上子网等,是与互联网隔绝的。这时要想做时钟同步,就只能自己配置了。
本文介绍如何自己配置时钟同步,不介绍如何自建NTP服务器。
一般timesync是预装的。如果没有,可以使用以下命令手动安装。
sudo apt install systemd-timesyncd 它和ntp是冲突的,二者只能安装一个。
修改/etc/systemd/timesyncd.conf,把NTP设为华为内绿区可达的NTP服务器。
修改完成后,需要restart后这个配置才生效。
如果以上systemd-timesyncd.service因为什么原因而不存在,则可通过以下命令修复:
一般查看日期与时间是使用date。使用timedatectl可以查看到更多时钟同步相关信息。
以下给出一些阿里云的NTP列表,可以通过ping择优使用。
以上就是 良许教程网 为各位朋友分享的配置Linux的时钟同步。
最后,最近很多小伙伴找我要 Linux学习路线图 ,于是我根据自己的经验,利用业余时间熬夜肝了一个月,整理了一份电子书。无论你是面试还是自我提升,相信都会对你有帮助!目录如下:
免费送给大家,只求大家金指给我点个赞!
电子书 | Linux开发学习路线图
也希望有小伙伴能加入我,把这份电子书做得更完美!
推荐阅读:
‘伍’ 想要让XP系统成为NTP服务器使得LINUX系统可以与之同步
1、将服务器类型更改为
NTP。为此,请按照下列步骤操作:
a.
单击“开始”,单击“运行”,键入
regedit,然后单击“确定”。
b.
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
c.
在右窗格中,右键单击“Type”,然后单击“修改”。
d.
在“编辑值”的“数值数据”框中键入
NTP,然后单击“确定”。
2、设置服务器,开始菜单,输入regedit命令后打开注册表。
3、修改以下选项的键
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的“Enabled”设定为1,打开NTP服务器功能。(默认是不开启NTP
Server服务,除非计算机升级成为域控制站)
4、修改以下键值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5,该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体(CMOS)
时钟。该设定强制主机将它自身宣告为可靠的时间源,从而运用内置的互补金属氧化物半导体
(CMOS)
时钟。假如要采用外面的时间服务器就用默认的
a
值即可.
5、在命令行执行以下命令重启Win32Time服务,确保以上修改起作用
net
stop
w32time
net
start
w32time
6、其他:如果该服务器和internet连接,那么为了避免服务器和internet上的ntp同步,最好追加以下配置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient的“enable”设定为0
以防止作为客户端自动同步外界的时间服务
7、执行linux同步命令
ntpdate
192.168.1.1
#(服务器IP地址)
hwclock
--systohc
#把时间写入硬件
‘陆’ linux修改ntp时钟同步
Linux停止ntp服务即可关闭时间同步。①关闭ntp服务(临时设置重启后自动开启) service ntpd stop②设置永久关闭ntp服务(重启后也是关闭的) chkconfig ntpd off
‘柒’ linux 时间同步ntp问题,客户端如何同步时间
解决方案:
在linux 上配置NTP 时间同步,具休操作步骤,整理如下:
1. 安装软件包(在服务端和客户端):
yum install ntp
2. 服务器端配置
例如:
首先,服务端设定IP地址为:192.168.146.110
修改ntp配置文件
vim /etc/ntp.conf
server 0.redhat.pool.ntp.org //设定上级服务器
restrict 192.168.146.0 mask 255.255.255.0 nomodify //设定哪些client机器可以和ntp server进行同步
//启动NTP服务前,手动校正一次时间
ntpdate 0.redhat.pool.ntp.org
service ntpd restart
chkconfig ntpd on
//查看ntp服务状态
netstat -ln | grep 123
ntpstat
3.客户端配置:
ntpdate 192.168.146.110 //与NTP server 同步时间
或者定期同步
crontab -e
*/5 * * * * /usr/sbin/ntpdate -u 192.168.146.110 //每五分钟同步一次
重启crond服务/etc/init.d/crond restart
ntpq -p //查看同步状态