# tar xvfz clockspeed-0.62.tar.gz # cd clockspeed-0.62 # make # make setup checka questo punto clockspeed è stato installato in /usr/local/clockspeed, se preferite avere gli eseguibili installati in /usr/local/bin modificate il file conf-home inserendo /usr/local.
#!/bin/sh
NTP=IP_SERVER_NTP
BIN=/usr/local/clockspeed/bin
${BIN}/sntpclock ${NTP} | ${BIN}/clockadd
#${BIN}/taiclock ${NTP} | ${BIN}/clockadd
exec ${BIN}/clockspeed
Innanzi tutto occorre scegliere un server ntp da utilizzarsi,
la lista è disponibile all'indirizzo
http://www.eecis.udel.edu/~mills/ntp/clock2a.html,
a questo punto inseriremo il suo indirizzo IP nello script (parametro
NTP). Fate attenzione anche ai path, impostati con le
variabili ROOT e BIN (rispettivamente dove si
trova installato clockspeed e i suoi binari).Non è necessario configurare il logger in quanto clockspeed non visualizza nessun messaggio.
Il secondo servizio, quello per inviare a clockspeed le informazioni di sincronizzazione è leggermente più complesso, infatti la frequenza con cui verrà contattato il server ntp esterno verrà raddoppiata ad ogni interrogazione, fino ad arrivare ad un valore massimo prefissato.
#!/bin/sh
MAX=7884000
SLEEP=300
NTP=IP_SERVER_NTP
ROOT=/usr/local/clockspeed
BIN=/usr/local/clockspeed/bin
TMP=/tmp
exec 2>&1
echo "starting..."
while true
do
NEXT=`date +%s`
NEXT=`expr ${NEXT} + ${SLEEP}`
echo "next clock adjust in ${SLEEP} seconds (`date -r ${NEXT}`)"
sleep ${SLEEP}
${BIN}/sntpclock ${NTP} > ${TMP}/clockadj-${SLEEP}
if [ $? != 0 ]; then
rm -f ${TMP}/clockadj-${SLEEP}
SLEEP=300
echo "can't read clock from ${NTP}, retry in ${SLEEP} seconds..."
continue
fi
cat ${TMP}/clockadj-${SLEEP} | tee ${ROOT}/adjust | ${BIN}/clockview
rm -f ${TMP}/clockadj-${SLEEP}
SLEEP=`expr ${SLEEP} + ${SLEEP}`
[ ${SLEEP} -gt ${MAX} ] && SLEEP=${MAX}
done
echo "exiting"
Lo script produrrà come output le informazioni sull'allineamento,
ecco un breve esempio:
@4000000043fc719b259832ec starting... @4000000043fc719b26fcd7b4 next clock adjust in 300 seconds (Wed Feb 22 15:18:15 CET 2006) @4000000043fc72b812de585c before: 2006-02-22 15:18:00.316150000000000000 @4000000043fc72b81312a6fc after: 2006-02-22 15:18:00.322069622050389647 @4000000043fc72b815577a64 next clock adjust in 600 seconds (Wed Feb 22 15:28:00 CET 2006)per archiviare questi log useremo un sottoservizio di logging con il seguente file di run:
#!/bin/sh exec multilog t ./mainPotete ottenere i sorgenti dei servizi scaricando il pacchetto clockspeed-svc-0.4.tar.gz.
All'indirizzo http://morettoni.net/rrd-clockspeed/ troverete un grafico che mostra la precisione di clockspeed, se volete generare i grafici potere usare lo script clockspeed.sh che trovate nel pacchetto.
#!/bin/sh
BIN=/usr/local/clockspeed/bin
exec ${BIN}/taiclockd
ovviamente su questa macchina server eseguite anche clockspeed
e il servizio di aggiornamento per fare in modo che il clock sia aggiornato.
Sui client, oltre che l'immancabile clockspeed verrà utilizzato il seguente script di aggiornamento (noterete alcuni cambiamenti rispetto allo script precedente):
#!/bin/sh
MAX=7884000
SLEEP=300
NTP=IP_SERVER_TAICLOCKD
ROOT=/usr/local/clockspeed
BIN=/usr/local/clockspeed/bin
while true
do
sleep ${SLEEP}
${BIN}/taiclock ${NTP} | tee ${ROOT}/adjust | ${BIN}/clockview
SLEEP=`expr ${SLEEP} + ${SLEEP}`
[ ${SLEEP} -gt ${MAX} ] && SLEEP=${MAX}
done
come noterete in questo script viene usato il client taiclock (al
posto di sntpclock) e occorrerà impostare l'indirizzo IP
del nostro server in cui abbiamo attivato taiclockd.#!/bin/sh exec multilog t ./main