#!/bin/sh # Please make sure the paths below are correct. # Alternatively you can put them in $0.conf, meaning if you've named # this script ntp-client then it must go in ntp-client.conf . # # NTPQV output version of "ntpq -c rv" # Version 4 is the most common and up to date version. # # If you are unsure, which to set, run this script and make sure that # the JSON output variables match that in "ntpq -c rv". # ################################################################ # Don't change anything unless you know what are you doing # ################################################################ BIN_NTPQ='/usr/bin/env ntpq' BIN_GREP='/usr/bin/env grep' BIN_AWK='/usr/bin/env awk' CONFIG=$0".conf" if [ -f "$CONFIG" ]; then # shellcheck disable=SC1090 . "$CONFIG" fi NTP_OFFSET=$($BIN_NTPQ -c rv | $BIN_GREP "offset" | $BIN_AWK -Foffset= '{print $2}' | $BIN_AWK -F, '{print $1}') NTP_FREQUENCY=$($BIN_NTPQ -c rv | $BIN_GREP "frequency" | $BIN_AWK -Ffrequency= '{print $2}' | $BIN_AWK -F, '{print $1}') NTP_SYS_JITTER=$($BIN_NTPQ -c rv | $BIN_GREP "sys_jitter" | $BIN_AWK -Fsys_jitter= '{print $2}' | $BIN_AWK -F, '{print $1}') NTP_CLK_JITTER=$($BIN_NTPQ -c rv | $BIN_GREP "clk_jitter" | $BIN_AWK -Fclk_jitter= '{print $2}' | $BIN_AWK -F, '{print $1}') NTP_WANDER=$($BIN_NTPQ -c rv | $BIN_GREP "clk_wander" | $BIN_AWK -Fclk_wander= '{print $2}' | $BIN_AWK -F, '{print $1}') NTP_VERSION=$($BIN_NTPQ -c rv | $BIN_GREP "version" | $BIN_AWK -F'ntpd ' '{print $2}' | $BIN_AWK -F. '{print $1}') echo '{"data":{"offset":"'"$NTP_OFFSET"'","frequency":"'"$NTP_FREQUENCY"'","sys_jitter":"'"$NTP_SYS_JITTER"'","clk_jitter":"'"$NTP_CLK_JITTER"'","clk_wander":"'"$NTP_WANDER"'"},"version":"'"$NTP_VERSION"'","error":"0","errorString":""}' exit 0