Skip to content

Commit f948c29

Browse files
committed
combine systemd-timesyncd, ntp-client, and ntp-server.py
1 parent ad01567 commit f948c29

4 files changed

Lines changed: 58 additions & 142 deletions

File tree

snmp/ntp

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/sh
2+
# Please make sure the paths below are correct.
3+
# Alternatively you can put them in $0.conf, meaning if you've named
4+
# this script ntp-client then it must go in ntp-client.conf .
5+
#
6+
# If you are unsure, which to set, run this script and make sure that
7+
# the JSON output variables match that in "ntpq -c rv".
8+
#
9+
################################################################
10+
# Don't change anything unless you know what are you doing #
11+
################################################################
12+
BIN_GREP='/usr/bin/env grep'
13+
BIN_AWK='/usr/bin/env awk'
14+
15+
if dpkg-query -W -f='${status}' ntpsec | grep -q "ok installed"; then
16+
17+
BIN_NTPQ='/usr/bin/env ntpq'
18+
19+
CONFIG=$0".conf"
20+
if [ -f "$CONFIG" ]; then
21+
# shellcheck disable=SC1090
22+
. "$CONFIG"
23+
fi
24+
25+
NTP_RV=$($BIN_NTPQ -c rv 127.0.0.1)
26+
NTP_IOSTAT=$($BIN_NTPQ -c iostat 127.0.0.1 2> /dev/null)
27+
28+
NTP_STRATUM=$(echo $NTP_RV | $BIN_AWK -Fstratum= '{print $2}' | $BIN_AWK -F, '{print $1}')
29+
NTP_OFFSET=$(echo $NTP_RV | $BIN_AWK -Foffset= '{print $2}' | $BIN_AWK -F, '{print $1}')
30+
NTP_FREQUENCY=$(echo $NTP_RV | $BIN_AWK -Ffrequency= '{print $2}' | $BIN_AWK -F, '{print $1}')
31+
NTP_SYS_JITTER=$(echo $NTP_RV | $BIN_AWK -Fsys_jitter= '{print $2}' | $BIN_AWK -F, '{print $1}')
32+
NTP_CLK_JITTER=$(echo $NTP_RV | $BIN_AWK -Fclk_jitter= '{print $2}' | $BIN_AWK -F, '{print $1}')
33+
NTP_WANDER=$(echo $NTP_RV | $BIN_AWK -Fclk_wander= '{print $2}' | $BIN_AWK -F, '{print $1}')
34+
NTP_RESET=$(echo $NTP_IOSTAT | $BIN_GREP "reset" | sed 's/.*reset://' | grep -oE '[0-9:]+' | head -n 1 )
35+
NTP_RESET=$(date -u -d "1970-01-01 $NTP_RESET" +"%s")
36+
NTP_FREE_BUFFER=$(echo $NTP_IOSTAT | sed 's/.*free receive buffers://' | grep -oE '[0-9:]+' | head -n 1 )
37+
NTP_USED_BUFFER=$(echo $NTP_IOSTAT | sed 's/.*used receive buffers://' | grep -oE '[0-9:]+' | head -n 1 )
38+
NTP_BUFFERS=$(($NTP_USED_BUFFER + $NTP_FREE_BUFFER))
39+
NTP_DROP_PACK=$(echo $NTP_IOSTAT | sed 's/.*dropped packets://' | grep -oE '[0-9]+' | head -n 1)
40+
NTP_IGNOR_PACK=$(echo $NTP_IOSTAT | sed 's/.*ignored packets://' | grep -oE '[0-9]+' | head -n 1)
41+
NTP_RCV_PACK=$(echo $NTP_IOSTAT | sed 's/.*received packets://' | grep -oE '[0-9]+' | head -n 1)
42+
NTP_SENT_PACK=$(echo $NTP_IOSTAT | sed 's/.*packets sent://' | grep -oE '[0-9]+' | head -n 1)
43+
44+
echo '{"data":{"stratum":"'"$NTP_STRATUM"'","offset":"'"$NTP_OFFSET"'","frequency":"'"$NTP_FREQUENCY"'","sys_jitter":"'"$NTP_SYS_JITTER"'","clk_jitter":"'"$NTP_CLK_JITTER"'","clk_wander":"'"$NTP_WANDER"'","time_since_reset":"'"$NTP_RESET"'","receive_buffers":"'"$NTP_BUFFERS"'","free_receive_buffers":"'"$NTP_FREE_BUFFER"'","used_receive_buffers":"'"$NTP_USED_BUFFER"'","dropped_packets":"'"$NTP_DROP_PACK"'","ignored_packets":"'"$NTP_IGNOR_PACK"'","received_packets":"'"$NTP_RCV_PACK"'","packets_sent":"'"$NTP_SENT_PACK"'"},"version":"1","error":"0","errorString":""}'
45+
fi
46+
47+
if dpkg-query -W -f='${status}' systemd-timesyncd | grep -q "ok installed"; then
48+
BIN_TIMEDATECTL='/usr/bin/env timedatectl'
49+
NTP_TIMESYNCD=$($BIN_TIMEDATECTL timesync-status)
50+
NTP_OFFSET=$(echo $NTP_TIMESYNCD | sed 's/.*Offset://' | grep -oE '[0-9.]+' | head -n 1)
51+
NTP_FREQUENCY=$(echo $NTP_TIMESYNCD | sed 's/.*Frequency://' | grep -oE '[0-9.]+' | head -n 1)
52+
NTP_JITTER=$(echo $NTP_TIMESYNCD | sed 's/.*Jitter://' | grep -oE '[0-9.]+' | head -n 1)
53+
NTP_DELAY=$(echo $NTP_TIMESYNCD | sed 's/.*Delay://' | grep -oE '[0-9.]+' | head -n 1)
54+
55+
echo '{"data":{"offset":"'"$NTP_OFFSET"'","frequency":"'"$NTP_FREQUENCY"'","jitter":"'"$NTP_JITTER"'","delay":"'"$NTP_DELAY"'"},"version":"1","error":"0","errorString":""}'
56+
fi
57+
58+
exit 0

snmp/ntp-client

Lines changed: 0 additions & 30 deletions
This file was deleted.

snmp/ntp-server.py

Lines changed: 0 additions & 96 deletions
This file was deleted.

snmp/systemd-timesyncd

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)