ntp环境搭建

1.环境要求

linux:时间服务器(无外网,只用本机给内网同步,不同步外网时间)
其余为客户端
同步要求:两小时同步一次

2.服务器配置

ntp配置文件配置

1.检查ntp是否安装
rpm -qa | grep ntp
2.配置文件配置
vim /etc/ntp.conf
	restrict 192.168.0.0 mask 225.225.225.0 nomodify
	设置为本地同步,不与网络时间服务器同步
	server 127.127.1.0
	fudge 127.127.1.0 stratum 0  #这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
3.启动ntp服务
systemctl start ntp
4.设置开机自启
systemctl enable ntp

3.Linux客户端配置ntp

客户端如果有同步时间的定时任务需要取消掉。
前提客户端需以安装ntpdate
查看客户端当前时间
date
(若时间偏差则不使用)测试使用:先设置一个错误的时间点
date -s "2015-5-23 11:30"
与时间服务器同步时间(-d:debug   -u快速同步)
ntpdate 192.168.56.100
此时再查看客户端的时间
date

新建定时任务
crontab -e
#每隔两小时执行一次,此处需要加绝对路径,否则不执行
* */2 * * * /usr/sbin/ntpdate 172.16.11.131;/usr/sbin/hwclock -w >/dev/null 2>&1
#查看定时任务
# crontab -l

扩展配置及其余配置说明

ntp服务器配置详细说明:

配置权限

/etc/.ntp.conf文件中

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

上面是配置的说明,下面是配置项,这部分的配置是对客户端(需要同步时间的服务器)的请求的处理策略,默认是拒绝。有-6的那一行是对ipv6的配置。可选的配置如下:

ignore :关闭所有的 NTP 联机服务

nomodify:客户端不能修改服务端的时间参数,但客户端可以同步时间。

notrust :拒绝没有通过认证的客户端机器

noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器

notrap :不提供trap远端登陆

nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

kod : 访问违规时发送 KoD 包。

注释掉这两行,配置允许哪些机器可以跟ntp server同步时间

允许所有机器到该机器上同步时间:

restrict default nomodify

可以配置具体的机器,如:

restrict 192.168.138.136 nomodify

可以配置网段,如:mask配置子网掩码

restrict 192.168.0.0 mask 225.225.225.0 nomodify

配置时间源

如果可以连接internet,可以配置internet上的时间源,internet上的ntp服务器有很多,可以去搜一下。

如果不能连接internet,则把本机作为时间源即可,配置如下:

server 127.127.1.0
fudge 127.127.1.0 stratum 0  #这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0

常见错误:

其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了。
1 [root@linl_C ~]# ntpdate lin_S
2 23 May 11:38:02 ntpdate[6694]: no server suitable for synchronization found
#每隔两小时执行一次,此处必须是加绝对路径,否则不执行
* */2 * * * /usr/sbin/ntpdate 172.16.11.131;/usr/sbin/hwclock -w >/dev/null 2>&1
## 2.定时任务不运行

2.定时任务不运行

task.null.crontab是一个没有内容的空文件
开启定时任务 
crontab /weblogic/tools/task.crontab
停止定时任务
crontab /weblogic/tools/task.null.crontab

拓展1:*linux系统时间和BIOS时间是不是一定一样?

查看硬件BIOS时间:
hwclock -r   读出BIOS的时间参数
hwclock -w   将当前系统时间写入BIOS中

crontab配置任务说明

3、利用crontab让LINUX NTP定时更新时间
注:让linux运行ntpdate更新时间时,linux不能开启NTP服务,否则会提示端口被占用:如下
[root@ESXI ~]# ntpdate 1.rhel.pool.ntp.org                                 
20 May 09:34:14 ntpdate[6747]: the NTP socket is in use, exiting

crontab文件配置简要说明
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
以下举几个例子说明问题:
每天早上6点:
0 6 * * *  command
每两个小时:
0 */2 * * *  command
晚上11点到早上8点之间每两个小时,早上八点:
0 23-7/2,8 * * * command
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点:
0 11 4 * 1-3 command
1月1日早上4点:
0 4 1 1 * command