#!/bin/bash # # tellerstats.sh 3 # generate graphs from the data # # Copyright (C) 2001 Philip Edelbrock # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. # # generic tellerstats init BEGIN # get config information from /etc/tellerstats.conf or wherever we are pointed if [ -z "$TELLERSTATS_CONF" ] then TELLERSTATS_CONF=/etc/tellerstats.conf fi export TELLERSTATS_CONF if [ ! -r $TELLERSTATS_CONF ] then echo "$0: Could not find config file $TELLERSTATS_CONF" exit 1 fi . $TELLERSTATS_CONF if [ ! -d $DBPATH ] then echo "$0: data directory $DBPATH does not exist" exit 1 fi if [ ! -d $SENSORPATH ] then echo "$0: sensor information directory $SENSORPATH does not exist." exit 1 fi if [ ! -d $HTMLROOT ] then echo "$0: The root of your webserver - $HTMLROOT - does not exist..bailing out" exit 1 fi if [ ! -d $HTMLPATH ] then echo "$0: The place where we keep HTML files and pictures - $HTMLPATH - does not exist..bailing out" exit 1 fi if [ ! -r $GNUPLOTSCRIPT_TMPL ] then echo "$0: The gnuplot script template $GNUPLOTSCRIPT_TMPL does not exist..bailing out" exit 1 fi export DBPATH SENSORPATH TEMPPATH HTMLROOT HTMLPATH GNUPLOTSCRIPT_TMPL if [ -n "$DEBUG" ] then echo "DBPATH = $DBPATH" echo "SENSORPATH = $SENSORPATH" echo "TEMPPATH = $TEMPPATH" echo "HTMLROOT = $HTMLROOT" echo "HTMLPATH = $HTMLPATH" echo "GNUPLOTSCRIPT_TMPL = $GNUPLOTSCRIPT_TMPL" fi # generic tellerstats init END if [ -z "$LINEWIDTH" ] then LINEWIDTH=5 fi export LINEWIDTH if [ -z "$PLOTFORMAT" ] then PLOTFORMAT=ps fi export PLOTFORMAT if [ -z "$PLOTTERMINAL" ] then PLOTTERMINAL="postscript eps enhanced color \"Helvetica\" 22" fi export PLOTTERMINAL if [ -n "$DEBUG" ] then echo "LINEWIDTH = $LINEWIDTH" echo "PLOTFORMAT = $PLOTFORMAT" echo "PLOTTERMINAL = $PLOTTERMINAL" fi # Trim files to 48 hour window cd $DBPATH files="`echo *`" for this in $files do tail $this -n576 > ${this}.tmp mv ${this}.tmp $this done ############################################### rm -rf $TEMPPATH mkdir -p $TEMPPATH cd $TEMPPATH # Update primary plots GNUPLOTSCRIPT="$TEMPPATH/gnuplotscript" cat $GNUPLOTSCRIPT_TMPL | perl -p -e's/\$(\w+)/$ENV{$1}/g' > $GNUPLOTSCRIPT gnuplot < $GNUPLOTSCRIPT rm $GNUPLOTSCRIPT files="`echo *`" CONVERT_OPTS_A="-interlace none -scale 320x240 -quality 100" CONVERT_OPTS_B="-interlace none -scale 800x600 -quality 100" for this in $files do prefix=`echo $this|perl -p -e's/\.\w+$//'` convert $CONVERT_OPTS_A $TEMPPATH/$this $HTMLPATH/${prefix}.png convert $CONVERT_OPTS_B $TEMPPATH/$this $HTMLPATH/${prefix}B.png touch $HTMLPATH/${prefix}.png $HTMLPATH/${prefix}B.png done # Update timestamp touch $HTMLPATH/index.shtml # if this was called as a cgi script, it should redirect to the index.shtml file if [ -n "$REMOTE_HOST" ] then REL_HTML=${HTMLPATH#$HTMLROOT} echo "Location: $REL_HTML/index.shtml" echo fi if [ -z "$DEBUG" ] then rm -rf $TEMPPATH fi exit 0