且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ntpdate刷新linux系统时间

更新时间:2021-08-11 11:17:17

大多linux系统都会ntpdate小工具,可用来同步系统时间,但是要注意ntpdate是越变式修改时间的,如果时差过大,会造成有些程序混乱;如果对某些有影响,请采用ntpd,它是逐步校准的。另外ntpdate在同步时间时,只对相差不到24小时的时间生效,所以系统时间和硬件时间超出24小时需先手工修改:

修改硬件时间示例:

设置时间:
date -s 03/18/16 #2016年03月18日
date -s 14:24:00 #14时24分00秒

/sbin/hwclock        #查看硬件时间
/sbin/hwclock --systohc #将当前系统时间写到硬件,通过先设置系统时间,在写入硬件可修改硬件时间

一般ntpdate工具位置

/lib/libcap.so.1
/usr/sbin/ntpdate

我们可以配置一个脚本ntp.sh,并将该文件追加在/etc/rc.local文件后面设置youdir/ntp.sh&开机启动

ntp.sh示例:

#/bin/bash
NTPSERVER=216.229.0.179
NTPPERIOD=600s

while true
do
/usr/sbin/ntpdate $NTPSERVER > /dev/null 2>&1
/sbin/hwclock -w
/bin/sleep $NTPPERIOD
done

注:

NTPSERVER=ntp服务器地址
NTPPERIOD=轮询间隔

可以先自行测试时间服务器:
运行命令:ping “ntp服务器地址”
运行命令:/usr/sbin/ntpdate  “ntp服务器地址”
成功返回样例:
(18 Mar 17:05:48 ntpdate[2779]: adjust time server 216.229.0.179 offset 0.056640 sec)

就表明可以同步时间

当然你也可以将你做好的配置打包备用

tar -czvPf  you_out_dir/ntf.tar.gz   /lib/libcap.so.1  /usr/sbin/ntpdate  youdir/exx/ntp.sh