update example ntp.script
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 31 Mar 2015 20:00:55 +0000 (22:00 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 31 Mar 2015 20:00:55 +0000 (22:00 +0200)
Handle an interesting corner case when NTP server is reachable...
but on a different IP now.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
examples/var_service/ntpd/ntp.script

index 76c34bf74aed09353396478d4fb72e06c066a180..8542181eb4bd7c62cefe3e2dc25cb11668b5d31e 100755 (executable)
 
 dt=`date '+%Y-%m-%d %H:%M:%S'`
 
+echo "`tail -n 199 -- "$0.log" 2>/dev/null`" >"$0.log.$$"
+
+if test x"$1" = x"unsync" \
+; then
+       # No replies for our NTP requests were seen for some time.
+       #
+       # Among more mundate cases like network outages, this happens
+       # if we ran for a LONG time (days) and ntp server's IP has changed.
+       # ntpd has no code to re-resolve peers' addresses to IPs,
+       # we need to help it:
+       #
+       echo "$dt: $1"\
+               "syncronization lost, restarting ntpd"\
+               >>"$0.log.$$"
+       mv -- "$0.log.$$" "$0.log"
+       kill $PPID
+       exit
+fi
+
 if test x"$stratum" != x"" \
 && test x"$poll_interval" != x"" \
 && test 4 -ge "$stratum" \
 && test 128 -le "$poll_interval" \
 ; then
-       echo "`tail -n 199 -- "$0.log" 2>/dev/null`" >"$0.log.$$"
        echo "$dt: $1"\
                "freq_drift_ppm=$freq_drift_ppm"\
                "offset=$offset"\
@@ -27,7 +45,6 @@ if test x"$stratum" != x"" \
        exec hwclock --systohc
 fi
 
-echo "`tail -n 199 -- "$0.log" 2>/dev/null`" >"$0.log.$$"
 echo "$dt: $1"\
        "freq_drift_ppm=$freq_drift_ppm"\
        "offset=$offset"\