centos安装ntpdate并同步时间
实现思路:主时间服务器-->安装ntp程序,开启ntpd服务,配置相关校对时间IP
客户端:安装ntp程序,开启ntpd服务,配置定式更新任务
1、安装ntp
yum install -y ntp
2、设置一个已知的时间服务器同步
ntpdate www.shinians.com
3、启动、停止ntpd服务
service ntpd stop #停止服务
service ntpd restart #重启服务
service ntpd start #启动服务
4、修改ntp服务器上的/etc/ntp.conf,加上以下的配置,并重新启动
Linux 下面的ntpd就要灵活多啦。默认配置一般足够好用。下面在 Fedora 下举个例子。配置:
# grep "^server" /etc/ntp.conf
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server pool.ntp.org
server 127.127.1.0 # local clock
启动ntpd之后查看状态
后面哪个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端
service ntpd restart #重启服务
5、配置Linux客户端
如果执行ntpdate命令报错需要把ntp服务关掉。
在linux客户端上执行ntpdatentp_server_ip就可以根据时间服务器统一局域网的时间了,将上面的命令放到cron里每天早上3点定期执行,crontab –e 然后输入
0 3 * * * /usr/sbin/ntpdate 192.168.120.88
时间服务器同步时间:需要关闭ntpd服务,执行ntpdate命令,之后再开启ntpd服务
客户端:同步时间
安装ntp相关程序,关闭ntp服务,确保主服务ntp已经开启(可以重启),执行定时任务
TIP:
查看端口:
[root@linux ~] # netstat -ln|grep 123
udp 0 0 192.168.228.153:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
udp 0 0 :::123 :::*
如何确认我们的NTP服务器已经更新了自己的时间呢?
TIP:
如何确认我们的NTP服务器已经更新了自己的时间呢?
[root@linux ~] # ntpstat
synchronized to NTP server(127.127.1.0) at stratum 11
time correct to within 950ms
polling server every 64 s
#改指令可列出NTP服务器是否与上层联机。由上述输出结果可知,时间校正约
#为950*10(-6)秒。且每隔64秒会主动更新时间。
TIP:
[root@linux ~] # ntpq –p
指令“ntpq -p”可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字段的意义如下:
remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“*”则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的操作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间
最后提及一点,ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件。
在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
局域网内服务器时间同步的方法
选择局域网中的一台机器作为ntp服务器,在这台机器上需要安装并启动ntpd其他机器上要关闭ntpd,安装ntpdate
场景一:修改本地时间 、同步互联网时间
首先利用date命令修改本地linux时间,然后通过ntpdate命令进行同步互联网时间
------------------------------------------应用--------------------------------------------------------------
tip:date应用
命令格式为:
date -s 时间字符串
例如只修改系统的日期,不修改时间(时分秒)
date -s 2012-08-02
或只修改时间不修改日期
date -s 10:08:00
当然也可以同时修改日期和时间
date -s "2012-05-18 04:53:00"
注意:由于日期和时间之间有空格,所以必须用引号引起来,否则命令会报错。
上述修改只是修改了linux的系统时间,CMOS中的时间可能还没有改变,所以为了保险,需要使用 clock -w 把当前系统时间写入到CMOS中。
系统时间和CMOS时间的关系。系统时间是由linux操作系统来维护的;CMOS时间是CMOS芯片保存的时间。系统启动时,操作系统将从CMOS读出时间记录为系统时间,同时操作系统也会自动每隔一段时间将系统时间写入CMOS中。如果使用date命令修改系统时间后马上重启电脑,操作系统还没有将系统时间同步到CMOS,这样开机后就还是没有修改前的时间了,所以为了保险起见,最还还是手动使用命令 clock 将系统时间同步到CMOS中。
service ntpd start #启动服务
service ntpd restart
service ntpd restart
service ntpd restart
service ntpd restart
sentos 7 后 ntpd 服务启动方法
systemctl status ntpd 【查看服务状态】
systemctl start ntpd 【开启服务】
systemctl enable ntpd 【 设置开机自启动】
systemctl disable ntpd 【停止开机自启动】
--------------------------------------------
报错:
问题1.ntpdate同步服务器时间时报:ntpdate[xxx]: the NTP socket is in use, exiting
原因:启动ntpd服务后就不可以用netpdata 同步时间了
解决:关闭ntpd服务
service ntpd stop
chkconfig ntpd off