#!/bin/sh # Amanda, The Advanced Maryland Automatic Network Disk Archiver # Copyright (c) 1992-1998 University of Maryland at College Park # All Rights Reserved. # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of U.M. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. U.M. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M. # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # Author: Olafur Gudumundsson, (ogud@tis.com) Trusted Information Systems # Formerly at: Systems Design and Analysis Group # Computer Science Department # University of Maryland at College Park # # Amplot: a program to generate postscript plots of each nights amanda # performance # # Author: Olafur Gudmundsson (ogud@tis.com) # Creation Date: April 1992 # Last modified: April 1995 # Input: list of amdumps # Output: Plot of amdump files as either gnuplots on the screen or # Postscript files # prefix=@prefix@ exec_prefix=@exec_prefix@ sbindir=@sbindir@ libexecdir=@libexecdir@ confdir=@CONFIG_DIR@ PATH=$sbindir:$libexecdir:/usr/bin:/bin:/usr/sbin:/sbin:/usr/ucb:$PATH export PATH AWK=@AWK@ AVARFLAG=@AWK_VAR_ASSIGNMENT_OPT@ GNUPLOT=@GNUPLOT@ COMPRESS=@AMPLOT_COMPRESS@ if [ $# -eq 0 ] ; then echo "Usage: $0 [-c] [-e] [-g] [-l] [-p] [-t hours] " echo "amplot generates plot for screen with fixed dimensions" echo " -c Compress the input amdump files after plotting" echo " -e Extends x (time) axes if needed" echo " -g Run gnuplot directly no postscript file generated DEFAULT" echo " -l Landscape mode suitable for printing" echo " -p Postscript output (color)" echo " -b The postscipt will be b/w" echo " -t T Set the right edge of the plot to be T hours" exit 1 fi tmp_files="bandw_free disk_alloc dump_idle finished run_queue tape_* title" my_plot=$libexecdir/amplot.g paper=0 gnuplot=1 cmpres=0 para="" maxtime=4 bw=0 # setting up the parameters to pass to [gn]awk while :; do case "$1" in -c) cmpres=1; shift;; -e) para=$para"$AVARFLAG extend=1 "; shift;; -g) gnuplot=1; shift;; -l) paper=1; para=$para"$AVARFLAG paper=1 "; shift;; -p) gnuplot=0; shift;; -b) bw=1; shift;; -t) shift if test "$#" -eq 0; then echo "amplot: no argument for -t option" 1>&2 exit 5 fi maxtime="$1"; shift;; *) break;; esac done if [ $# -eq 0 ] ; then echo "amplot: no input files" 1>&2 exit 5 fi para=$para"$AVARFLAG maxtime=$maxtime" if [ $gnuplot -eq 1 ] ; then my_plot=$my_plot"p" # use the plot prog that pauses plot=" -geometry 800x700+40+0" para=$para"$AVARFLAG gnuplot=1 " echo "Displaying graph on the screen, for next graph" if [ "$paper" -eq 1 ] ; then echo "amplot: -l requires -p flag at the same time" 1>&2 exit 6 fi if [ "$bw" -eq 1 ] ; then echo "amplot: -b requires -p flag at the same time" 1>&2 exit 6 fi fi if [ $bw -eq 1 ]; then para=$para" bw=1" fi list=""; # files to compress at the end for i in ${1+"$@"} # for all the input files do f="$i"; if [ ! -f "$f" ] ; then f=`ls "$i" "$i".*[zZ] 2>/dev/null` fi if [ -f "$f" ] ; then # found file disp=`$AWK -f $libexecdir/amcat.awk $AVARFLAG f="$f"` if [ -z "$disp" ] ; then echo "Do not know how to [gz|z]cat this file" else /bin/rm -f $tmp_files $disp "$f" | $AWK -f $libexecdir/amplot.awk $para $GNUPLOT $plot $my_plot if [ $disp = "cat" -a $cmpres -eq 1 ] ; then list=$list" "$f fi fi else # check if file has been compressed echo "No such file $i or $i.*[zZ]" fi done /bin/rm -f $tmp_files if [ "$list" != "" ] ; then # now compress the files we worked on # comment out next line if you do not want compression at the end echo "Compressing $list" $COMPRESS $list fi exit 0