NTP对时服务设置以及自动对时设置-工作记录

NTP对时服务设置以及自动对时设置-工作记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

NTP对时服务设置以及自动对时设置

前言一、NTP服务安装1.在线安装2.离线安装

二、NTP客户端自动对时两种方法1.使用ntp服务自带的自动对时功能①配置ntp.conf②重启ntp服务③查看ntp服务状态④查看运行状态

2.使用shell脚本和crontab实现自动对时①关闭ntp服务②使用脚本手动对时③添加crontab任务④重启crontab服务⑤开启crontab日志输出

总结

前言

由于工作需要在ubuntu上部署ntp客户端与主站对时,本文就介绍了如何设置ntp客户端和自动对时。

一、NTP服务安装

1.在线安装

使用root用户执行如下命令

apt-get install ntp//安装ntp服务

apt-get install ntpdate//安装ntpddate服务

2.离线安装

Ubuntu的deb包下载地址: github地址

二、NTP客户端自动对时两种方法

1.使用ntp服务自带的自动对时功能

①配置ntp.conf

红框部分是增加的内容

prefer表示优先向192.168.13.31对时,minpoll和maxpoll用来限制同步时间,3表示2的3次方,minpoll 3表示最短8秒对时一次

②重启ntp服务

root用户下使用如下命令

service ntp restart

③查看ntp服务状态

root用户下使用如下命令

servic --status-all

【+】ntp表示ntp服务开启,【-】ntp表示ntp服务关闭

④查看运行状态

root用户下使用如下命令

ntpq -p

参数详解

参数含义ststratum阶层when距离上次同步时间多少秒poll多少秒对一次时reach已经对时的次数delay网络延时offset时间补偿jitter系统时间与bios时间差

2.使用shell脚本和crontab实现自动对时

①关闭ntp服务

使用ntpdate手动对时,一定要先关闭ntp服务,否则会出现如下问题 root用户下使用如下命令

service ntp stop//关闭ntp服务

②使用脚本手动对时

ntp_proofread.sh

#!/bin/sh

dir_name=`dirname $0`

ip_path=$dir_name/ntp_serv_ip.txt

for line in $(cat $ip_path)

do

{

ip=$line

echo $ip

}

done

/usr/sbin/ntpdate $ip//这里需要使用ntpdate所在的绝对路径,否则会出现找不到ntpdate命令的情况

/usr/sbin/ntpdate $ip

/usr/sbin/ntpdate $ip//对时三次,防止因为网络延迟导致对时不成功

只需要将ntp_serv_ip.txt中的ip改为你要对时的ntp服务主机就行。

③添加crontab任务

这里我直接使用脚本进行添加 addcron.sh

#!/bin/sh

myscript=ntp_proofread.sh

filePath=$(cd "$(dirname "$0")";pwd)

echo $filePath

crontab -l > cron

number=`grep -n "$myscript" cron | cut -d ":" -f 1`

aa=$number

echo $aa

if [ -z $aa ];

then

echo "messions is not"

echo '* * * * * '$filePath'/'$myscript'' >> cron

else

echo "messions is allready"

sed -i '/'$myscript'/d' cron

echo '* * * * * '$filePath'/'$myscript'' >> cron

fi

这里采用的是每分钟对一次时,如果有需要可以自定对时时间。 crontab文件语法:

* * * * * command

分 时 天 月 周 命令

每列表示意义

a. 第一个表示的是分钟1~59分钟,默认表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。

b. 第二个表示的是小时1~23小时,默认表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。

c. 第三个表示的是天1~31,默认表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。

d. 第四个表示的是月1~12,默认表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。

e. 第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。

f. 第六个command表示要执行的命令或者任务。

④重启crontab服务

root用户下使用如下命令

service cron restart

crontab启动后,需要3-4分钟后才会执行脚本。

⑤开启crontab日志输出

ubuntu下cron服务默认无日志输出。如果crontab不生效的话,对于我们锁定问题不方便,所以这边开启日志输出。 root用户下使用如下命令

vim /etc/rsyslog.d/50-default.conf

去掉cron.*前的#号,然后重启cron服务

sudo service cron restart

这样就可以在/var/log里面发现有cron的日志文件了,我们就可以通过查看日志文件找到问题所在

总结

ntp自带的自动对时,有时候会因为网络延迟原因导致对时失败,需要等下个周期才能重新对时。所以在实际工作中采用脚本的方式来进行自动对时。

相关推荐

我,30岁,转行了!关于转行的13个真实困惑
365app下载安装官方免费下载

我,30岁,转行了!关于转行的13个真实困惑

📅 07-30 👁️ 5926
世界杯比利时法国小球(法国世界杯比利时战绩)
遥感资源大放送(下)| 11 个经典遥感数据集
365足球平台是合法的吗

遥感资源大放送(下)| 11 个经典遥感数据集

📅 08-08 👁️ 9892