aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/do-rrd-update
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/do-rrd-update')
-rwxr-xr-xscripts/do-rrd-update30
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/do-rrd-update b/scripts/do-rrd-update
new file mode 100755
index 0000000..c48344e
--- /dev/null
+++ b/scripts/do-rrd-update
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+DATE=`date +%Y-%m-%d' '%T`
+case "$1" in
+ "") echo "Missing system name."; exit 1
+esac
+
+if [ ! -f ntpstatus.sqlite ]; then
+ echo "CREATE TABLE status (date datetime NOT NULL, host varchar(255) NOT NULL, offset varchar(255), freq varchar(255), sjit varchar(255), cjit varchar(255), wander varchar(255), disp varchar(255));" |sqlite3 ntpstatus.sqlite
+fi
+
+if [ ! -f ntpclients.sqlite ]; then
+ echo "CREATE TABLE clientss (date datetime NOT NULL, host varchar(255) NOT NULL, value blob);" |sqlite3 ntpclients.sqlite
+fi
+
+/usr/sbin/ntpq -4 -c rv $1 | awk 'BEGIN{ RS=","}{ print }' >> /tmp/ntp-rrdstats.$$
+
+NOFFSET=`grep offset /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+NFREQ=`grep frequency /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+NSJIT=`grep sys_jitter /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+NCJIT=`grep clk_jitter /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+NWANDER=`grep clk_wander /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+NDISPER=`grep rootdisp /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+JITTER=`grep jitter /tmp/ntp-rrdstats.$$ | awk 'BEGIN{FS="="}{print $2}'`
+
+# keep this in the same order as do-newntpstat creates them, please.
+/usr/bin/rrdtool update $1.rrd N:${NOFFSET}:${NSJIT}:${NCJIT}:${NWANDER}:${NFREQ}:${NDISPER}:0
+rm /tmp/ntp-rrdstats.$$
+
+echo "INSERT INTO status (date, host, offset, freq, sjit, cjit, wander, disp) VALUES ('${DATE}', '${1}', '${NOFFSET}', '${NSJIT}', '${NCJIT}', '${NWANDER}', '${NFREQ}', '${NDISPER}');" |sqlite3 ntpstatus.sqlite