xref: /netbsd-src/external/bsd/ntp/dist/scripts/stats/summary.sh (revision abb0f93cd77b67f080613360c65701f85e5f5cfe)
1*abb0f93cSkardel#!/bin/sh
2*abb0f93cSkardel#
3*abb0f93cSkardel# Script to summarize ipeerstats, loopstats and clockstats files
4*abb0f93cSkardel#
5*abb0f93cSkardel# This script can be run from a cron job once per day, week or month. It
6*abb0f93cSkardel# runs the file-specific summary script and appends the summary data to
7*abb0f93cSkardel# designated files.
8*abb0f93cSkardel#
9*abb0f93cSkardelDATE=`date +20%y%m%d`
10*abb0f93cSkardelS=/usr/local/bin/S
11*abb0f93cSkardelSIN=S.in
12*abb0f93cSkardelSOUT=S.out
13*abb0f93cSkardelLOOP=loop_summary
14*abb0f93cSkardelPEER=peer_summary
15*abb0f93cSkardelCLOCK=clock_summary
16*abb0f93cSkardel
17*abb0f93cSkardelrm -f $SIN $SOUT
18*abb0f93cSkardel
19*abb0f93cSkardel#
20*abb0f93cSkardel# Summarize loopstats files
21*abb0f93cSkardel#
22*abb0f93cSkardelfor f in loopstats.[12][0-9][0-9][0-9][0-1][0-9][0-3][0-9]; do
23*abb0f93cSkardel	d=`echo $f | cut -f2 -d.`
24*abb0f93cSkardel	if [ -f $f ] && [ $DATE != $d ]; then
25*abb0f93cSkardel		echo " " >>$LOOP
26*abb0f93cSkardel		echo $f >>$LOOP
27*abb0f93cSkardel		awk -f loop.awk $f >>$LOOP
28*abb0f93cSkardel		if [ -f $S ]; then
29*abb0f93cSkardel			echo "file1<-"\"${f}\" >>$SIN
30*abb0f93cSkardel			echo "source("\""loop.S"\"")" >>$SIN
31*abb0f93cSkardel			echo "unix("\""rm ${f}"\"")" >>$SIN
32*abb0f93cSkardel		else
33*abb0f93cSkardel			rm -f $f
34*abb0f93cSkardel		fi
35*abb0f93cSkardel	fi
36*abb0f93cSkardeldone
37*abb0f93cSkardel
38*abb0f93cSkardel#
39*abb0f93cSkardel# Summarize peerstats files
40*abb0f93cSkardel#
41*abb0f93cSkardelfor f in peerstats.199[4-9][0-1][0-9][0-3][0-9]; do
42*abb0f93cSkardel	d=`echo $f | cut -f2 -d.`
43*abb0f93cSkardel	if [ -f $f ] && [ $DATE != $d ]; then
44*abb0f93cSkardel		echo " " >>$PEER
45*abb0f93cSkardel		echo $f >>$PEER
46*abb0f93cSkardel		awk -f peer.awk $f >>$PEER
47*abb0f93cSkardel		rm -f $f
48*abb0f93cSkardel	fi
49*abb0f93cSkardeldone
50*abb0f93cSkardel
51*abb0f93cSkardel#
52*abb0f93cSkardel# Summarize clockstats files
53*abb0f93cSkardel#
54*abb0f93cSkardelfor f in clockstats.199[4-9][0-1][0-9][0-3][0-9]; do
55*abb0f93cSkardel	d=`echo $f | cut -f2 -d.`
56*abb0f93cSkardel	if [ -f $f ] && [ $DATE != $d ]; then
57*abb0f93cSkardel		echo " " >>$CLOCK
58*abb0f93cSkardel		echo $f >>$CLOCK
59*abb0f93cSkardel		awk -f clock.awk $f >>$CLOCK
60*abb0f93cSkardel		if [ -f /dev/gps[0-9] ]; then
61*abb0f93cSkardel			awk -f itf.awk $f >itf.$d
62*abb0f93cSkardel			awk -f etf.awk $f >etf.$d
63*abb0f93cSkardel			awk -f ensemble.awk $f >ensemble.$d
64*abb0f93cSkardel			awk -f tdata.awk $f >tdata.$d
65*abb0f93cSkardel		fi
66*abb0f93cSkardel		rm -f $f
67*abb0f93cSkardel	fi
68*abb0f93cSkardeldone
69*abb0f93cSkardel
70*abb0f93cSkardel#
71*abb0f93cSkardel# Process clockstat files with S and generate PostScript plots
72*abb0f93cSkardel#
73*abb0f93cSkardelfor f in itf etf ensemble tdata; do
74*abb0f93cSkardel	for d in ${f}.199[4-9][0-1][0-9][0-3][0-9]; do
75*abb0f93cSkardel		if [ -f $d ]; then
76*abb0f93cSkardel			if [ -f $S ]; then
77*abb0f93cSkardel				echo "file1<-"\"${d}\" >>$SIN
78*abb0f93cSkardel				echo "source("\"${f}.S\"")" >>$SIN
79*abb0f93cSkardel				echo "unix("\""rm ${d}"\"")" >>$SIN
80*abb0f93cSkardel			else
81*abb0f93cSkardel				rm -f $d
82*abb0f93cSkardel			fi
83*abb0f93cSkardel		fi
84*abb0f93cSkardel	done
85*abb0f93cSkardeldone
86*abb0f93cSkardelif [ -f $SIN ]; then
87*abb0f93cSkardel	$S BATCH $SIN $SOUT
88*abb0f93cSkardelfi
89