core-extra/scripts/perf/timesyncstop.sh
2013-08-29 14:21:13 +00:00

51 lines
1.5 KiB
Bash

#!/bin/sh
# (c)2010-2012 the Boeing Company
# author: Yueli Yang <yueli.yang@boeing.com>
#
# Stop timesync service. If it was not yet in sync with any ntp server,
# adjust its time to the first ntp server in # configured in /etc/ntp.conf
#
# Usage: sudo sh timesyncstop.sh [deubg]
dbg=$1
if [ "$dbg" = "debug" ]; then
date +%y%h%d-%T-%N
fi
svs=""
if [ -e /usr/sbin/ntpd ]; then
# command "sudo /usr/sbin/ntpd -q -g" will start the ntp service and
# keep it on until it performs a good synchronization, then it leaves.
# It is not quick enough for our need here
/etc/init.d/ntp status
if [ $? = 0 ]; then
svs=`ntpq -c peers | awk {'print $1'} | grep ^*`
if [ "$dbg" = "debug" ]; then
ntpq -c peers
echo "get time servers for later need: $svs"
ntptime
echo "terminate ntpd process"
fi
/etc/init.d/ntp stop
fi
# if there are time servers configured in file /etc/ntp.conf,
# adjust time to the first server
if [ "$svs" = "" ]; then
svs=`grep ^server /etc/ntp.conf | awk {'print $2'} `
if [ "$dbg" = "debug" ]; then
echo "$svs"
fi
for sv in "$svs"; do
ntpdate $sv
# may use "sntp -s $sv" or "rdate" if ntpdate is deprecated
break
done
else
if [ "$dbg" = "debug" ]; then
echo No time adjustment because time sync was stable with $svs
fi
fi
fi
if [ "$dbg" = "debug" ]; then
date +%y%h%d-%T-%N
fi