ntp 环境搭建
linux: 时间服务器 ( 无外网 , 只用本机给内网同步 , 不同步外网时间 ) 其余为客户端 同步要求 : 两小时同步一次
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
客户端如果有同步时间的定时任务需要取消掉。前提客户端需以安装 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
扩展配置及其余配置说明
/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. 定时任务不运行
task.null.crontab 是一个没有内容的空文件 开启定时任务 crontab /weblogic/tools/task.crontab 停止定时任务 crontab /weblogic/tools/task.null.crontab
查看硬件 BIOS 时间 : hwclock -r 读出 BIOS 的时间参数 hwclock -w 将当前系统时间写入 BIOS 中
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
原文链接:https://blog.csdn.net/sunnySe/article/details/106102354
正文完