1、背景
由于Linux服务器运行时间久了,会造成时间的误差,需要配置时间同步。我们国家的国家授时中心提供标准时间服务器,可以通过互联网去连接这些提供的时间服务器。然而很多的公司没有联网,它是内网,只能在集群中找到一台机器作为时间服务器。
2、NTP服务介绍
网络时间协议(Network Time Protocol, NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟、GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准时间差小于1毫秒,WAN上几十毫秒),且可使用加密确认的方式来防止恶毒的协议攻击。NTP可以利用多个途径和来源的时间服务器来更加精确的校正时间。现在绝大部分的操作系统都支持NTP,比如在Unix和Windows中都有他们自己的NTP服务。NTP官方组织为www.ntp.org。
3、查询NTP相关的包
$ sudo rpm -qa | grep ntp
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.4p8-3.el6.centos.x86_64
ntp-4.2.4p8-3.el6.centos.x86_64
查看ntpdate命令所在位置:
$ which ntpdate
/usr/sbin/ntpdate
4、查看ntpd服务状态,并启动
[root@hadoop-senior hadoop-2.5.0]# service ntpd status
ntpd is stopped
[root@hadoop-senior hadoop-2.5.0]# service ntpd start
Starting ntpd: [OK]
5、设置NTP服务开机启动
$ sudo chkconfig ntpd on
查看NTP服务的启动级别
$ sudo chkconfig ntpd --list
6、修改配置文件
$ sudo vim /etc/ntp.conf
第一处:修改成自己的网段
#Hosts on local network are less restricted.
restrict 192.168.74.0 mask 255.255.255.0 nomodify notrap
第二处:由于是内网环境,就不需要这些服务配置,注释
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org
# server 1.centos.pool.ntp.org
# server 2.centos.pool.ntp.org
第三处:ntp server提供的本地服务
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10
7、配置完成后,需要重启ntpd服务
$ sudo service ntp restart
8、计划一个crontab定时任务,每10分钟执行一次时间同步
编写crontab脚本(在其他服务器上):# crontab -e
crontab脚本内容:
##sync time
0-59/10 * * * * /usr/sbin/ntpdate hadoop-senior.ibeifeng.com
查询定时任务:
# crontab -l
执行定时任务:
$ sudo /usr/sbin/ntpdate hadoop-senior.ibeifeng.com
查看当前时间:date命令
9、与系统BIOS时间同步
修改/etc/sysconfig/ntpd文件
添加第二行:
SYNC_HWCLOCK=yes