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