70 lines
1.6 KiB
Plaintext
70 lines
1.6 KiB
Plaintext
|
#!/bin/sh
|
||
|
# clockctl
|
||
|
# interface to djb clockspeed (0.62)
|
||
|
# ===
|
||
|
# from http://thedjbway.b0llix.net/clockspeed/clockctl.html
|
||
|
|
||
|
# read configuration:
|
||
|
if [ -r /etc/clockspeed/clockspeed.conf ] ; then
|
||
|
. /etc/clockspeed/clockspeed.conf
|
||
|
else
|
||
|
echo "$0: configuration error: unable to read clockspeed.conf"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# clock_pick function:
|
||
|
clock_pick()
|
||
|
{
|
||
|
case ${CLOCK_TYPE} in
|
||
|
ntp|NTP)
|
||
|
${CLOCKSPEED_BIN}/sntpclock "${CLOCK_IP}"
|
||
|
;;
|
||
|
tai|TAI)
|
||
|
${CLOCKSPEED_BIN}/taiclock "${CLOCK_IP}"
|
||
|
;;
|
||
|
*)
|
||
|
echo "$0: configuration error: CLOCK_TYPE not recognized"
|
||
|
exit 1;
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
|
||
|
# process command:
|
||
|
case $1 in
|
||
|
a|atto)
|
||
|
echo "Viewing current attoseconds in hardware tick:"
|
||
|
${CLOCKSPEED_BIN}/clockview < ${CLOCKSPEED_HOME}/etc/atto
|
||
|
;;
|
||
|
m|mark)
|
||
|
echo "Obtaining new calibration mark from master server at ${CLOCK_IP}:"
|
||
|
clock_pick | tee ${CLOCKSPEED_HOME}/adjust | ${CLOCKSPEED_BIN}/clockview
|
||
|
;;
|
||
|
s|sync)
|
||
|
echo "Setting system clock with master server at ${CLOCK_IP}:"
|
||
|
clock_pick | ${CLOCKSPEED_BIN}/clockadd && \
|
||
|
clock_pick | ${CLOCKSPEED_BIN}/clockview
|
||
|
;;
|
||
|
v|view)
|
||
|
echo "Checking system clock against master server at ${CLOCK_IP} (clockview):"
|
||
|
clock_pick | ${CLOCKSPEED_BIN}/clockview
|
||
|
;;
|
||
|
h|help)
|
||
|
cat <<END_HELP
|
||
|
clockspeed control:
|
||
|
atto -- inspect current "attoseconds"
|
||
|
mark -- obtain new calibration mark for clockspeed
|
||
|
sync -- set the system clock with master time server
|
||
|
view -- check system clock against master time server
|
||
|
help -- this screen
|
||
|
END_HELP
|
||
|
;;
|
||
|
|
||
|
*)
|
||
|
echo "Usage: $0 [ a|atto | m|mark | s|sync | v|view | h|help ]"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
exit 0
|