#!/bin/sh DATE=`date +%Y-%m-%d' '%T` SCRIPTS=/var/www/time.mattrude.com/scripts 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 #if [ $1 == `hostname` ]; then # CLIENTS=`${SCRIPTS}/do-ntp-client-update` #else # CLIENTS=`ssh ${1} ${SCRIPTS}/do-ntp-client-update` #fi ssh $1 /home/matt/bin/ntp/ntp_clients_stats > ../logs/$1.log CLIENTS=`grep "Estimated active ntp pool clients:" ../logs/$1.log |awk '{ print $6 }'` LIMITED=`grep "Estimated abusive ntp pool clients:" ../logs/$1.log |awk '{ print $6 }'` #CLIENTS=`/usr/local/sbin/ntpq -n -c mrulist ${1} 2> /dev/null |grep -v '===' |grep -v 'lstint' |wc -l` #LIMITED=`/usr/local/sbin/ntpq -n -c "mrulist limited" ${1} 2> /dev/null |grep -v '===' |grep -v 'lstint' |wc -l` KOD=`/usr/local/sbin/ntpq -n -c "mrulist sort=-avgint kod" ${1} 2> /dev/null |grep -v '===' |grep -v 'lstint' |wc -l` /usr/local/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}'` rm /tmp/ntp-rrdstats.$$ # 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}:${CLIENTS}:${LIMITED}:${KOD} #echo "N:${NOFFSET}:${NSJIT}:${NCJIT}:${NWANDER}:${NFREQ}:${NDISPER}:${CLIENTS}:${LIMITED}:${KOD}" echo "INSERT INTO status (date, host, offset, freq, sjit, cjit, wander, disp, clients, limited, kod) VALUES ('${DATE}', '${1}', '${NOFFSET}', '${NSJIT}', '${NCJIT}', '${NWANDER}', '${NFREQ}', '${NDISPER}', '${CLIENTS}', '${LIMITED}', '${KOD}');" |sqlite3 ntpstatus.sqlite echo "date, host, offset, freq, sjit, cjit, wander, disp, clients, limited, kod" > $1.csv echo "select * from status WHERE host = '"$1"' ORDER BY date DESC;" |sqlite3 -separator ',' ntpstatus.sqlite >> $1.csv