chore: initial import from KNEL/PFVCluster@041d311 [#769]
Split per O&M lane work order. Full history: KNEL/PFVCluster. shellcheck debt fixed in librenms-agent (quoting, arithmetic, backticks); fixes upstream ntp-server.sh bug: input_wakeups reported PACKETSENDFAILURES instead of INPUTWAKEUPS. mysql.sh (PHP-in-.sh) exempt per house rule. https://projects.knownelement.com/issues/769#note-4152
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
#!/bin/sh
|
||||
# Please make sure the paths below are correct.
|
||||
# shellcheck disable=SC2016 # AWK program strings — $BIN_AWK indirection hides awk from shellcheck
|
||||
# Alternatively you can put them in $0.conf, meaning if you've named
|
||||
# this script ntp-client.sh then it must go in ntp-client.sh.conf .
|
||||
#
|
||||
# NTPQV output version of "ntpq -c rv"
|
||||
# p1 DD-WRT and some other outdated linux distros
|
||||
# p11 FreeBSD 11 and any linux distro that is up to date
|
||||
#
|
||||
# If you are unsure, which to set, run this script and make sure that
|
||||
# the JSON output variables match that in "ntpq -c rv".
|
||||
#
|
||||
BIN_NTPD='/usr/bin/env ntpd'
|
||||
BIN_NTPQ='/usr/bin/env ntpq'
|
||||
BIN_NTPDC='/usr/bin/env ntpdc'
|
||||
BIN_GREP='/usr/bin/env grep'
|
||||
BIN_TR='/usr/bin/env tr'
|
||||
BIN_CUT='/usr/bin/env cut'
|
||||
BIN_SED="/usr/bin/env sed"
|
||||
BIN_AWK='/usr/bin/env awk'
|
||||
NTPQV="p11"
|
||||
################################################################
|
||||
# Don't change anything unless you know what are you doing #
|
||||
################################################################
|
||||
CONFIG="$0.conf"
|
||||
if [ -f "$CONFIG" ]; then
|
||||
. "$CONFIG"
|
||||
fi
|
||||
VERSION=1
|
||||
|
||||
STRATUM=$("$BIN_NTPQ" -c rv | "$BIN_GREP" -Eow "stratum=[0-9]+" | "$BIN_CUT" -d "=" -f 2)
|
||||
|
||||
# parse the ntpq info that requires version specific info
|
||||
NTPQ_RAW=$("$BIN_NTPQ" -c rv | "$BIN_GREP" jitter | "$BIN_SED" 's/[[:alpha:]=,_]/ /g')
|
||||
if [ "$NTPQV" = "p11" ]; then
|
||||
OFFSET=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $3}')
|
||||
FREQUENCY=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $4}')
|
||||
SYS_JITTER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $5}')
|
||||
CLK_JITTER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $6}')
|
||||
CLK_WANDER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $7}')
|
||||
fi
|
||||
if [ "$NTPQV" = "p1" ]; then
|
||||
OFFSET=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $2}')
|
||||
FREQUENCY=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $3}')
|
||||
SYS_JITTER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $4}')
|
||||
CLK_JITTER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $5}')
|
||||
CLK_WANDER=$(echo "$NTPQ_RAW" | "$BIN_AWK" -F ' ' '{print $6}')
|
||||
fi
|
||||
|
||||
VER=$("$BIN_NTPD" --version)
|
||||
if [ "$VER" = '4.2.6p5' ]; then
|
||||
USECMD="$BIN_NTPDC -c iostats"
|
||||
else
|
||||
USECMD="$BIN_NTPQ -c iostats localhost"
|
||||
fi
|
||||
CMD2=$($USECMD | "$BIN_TR" -d ' ' | "$BIN_CUT" -d : -f 2 | "$BIN_TR" '\n' ' ')
|
||||
|
||||
TIMESINCERESET=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $1}')
|
||||
RECEIVEDBUFFERS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $2}')
|
||||
FREERECEIVEBUFFERS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $3}')
|
||||
USEDRECEIVEBUFFERS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $4}')
|
||||
LOWWATERREFILLS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $5}')
|
||||
DROPPEDPACKETS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $6}')
|
||||
IGNOREDPACKETS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $7}')
|
||||
RECEIVEDPACKETS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $8}')
|
||||
PACKETSSENT=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $9}')
|
||||
PACKETSENDFAILURES=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $10}')
|
||||
INPUTWAKEUPS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $11}')
|
||||
USEFULINPUTWAKEUPS=$(echo "$CMD2" | "$BIN_AWK" -F ' ' '{print $12}')
|
||||
|
||||
echo '{"data":{"offset":"'"$OFFSET"\
|
||||
'","frequency":"'"$FREQUENCY"\
|
||||
'","sys_jitter":"'"$SYS_JITTER"\
|
||||
'","clk_jitter":"'"$CLK_JITTER"\
|
||||
'","clk_wander":"'"$CLK_WANDER"\
|
||||
'","stratum":"'"$STRATUM"\
|
||||
'","time_since_reset":"'"$TIMESINCERESET"\
|
||||
'","receive_buffers":"'"$RECEIVEDBUFFERS"\
|
||||
'","free_receive_buffers":"'"$FREERECEIVEBUFFERS"\
|
||||
'","used_receive_buffers":"'"$USEDRECEIVEBUFFERS"\
|
||||
'","low_water_refills":"'"$LOWWATERREFILLS"\
|
||||
'","dropped_packets":"'"$DROPPEDPACKETS"\
|
||||
'","ignored_packets":"'"$IGNOREDPACKETS"\
|
||||
'","received_packets":"'"$RECEIVEDPACKETS"\
|
||||
'","packets_sent":"'"$PACKETSSENT"\
|
||||
'","packet_send_failures":"'"$PACKETSENDFAILURES"\
|
||||
'","input_wakeups":"'"$INPUTWAKEUPS"\
|
||||
'","useful_input_wakeups":"'"$USEFULINPUTWAKEUPS"\
|
||||
'"},"error":"0","errorString":"","version":"'"$VERSION"'"}'
|
||||
Reference in New Issue
Block a user