Listing 6: diskspace.sh
:
#######################################################
# diskspace.sh
#######################################################
# diskspace.sh - if disk space amounts change by a
# predetermined amount (as specified in the out file),
# then echo the change. The output from the script goes
# to a pseudo file.
# make sure this is being run by a posix compliant shell
test "$((1))" = 1 || exec ksh $0 "$@"
ctrldir=/u/stevei/fchange
: ${datafile:=$ctrldir/pseudo/diskspace.out}
test -f $datafile || {
echo "Error: could not find: $datafile"
exit 1
}
awk '/^(#| |$)/ {
# if not a data line, then prepend # #
print "# #", $0
next
}
{print}' $datafile |
while read dir cursize delta
do
# if # # was sent, just echo the line and continue
case "$dir" in
\#) echo "$delta"; continue ;;
esac
# determine new size
newsize=$(bdf $dir | awk '/[0-9]%/{
size=$(NF - 1)
sub(/%/,"",size)
print size
}')
if test $(( $cursize - $newsize )) -ge $delta -o \
$(( $newsize - $cursize )) -ge $delta
then
cursize=$newsize
fi
echo "$dir $cursize $delta"
done
exit 0
# This is the diskspace.sh data file
# format is:
# [directory] [current % full] [size in change to report]
/product/source 86 10
/product/tools 80 5
/product/sccs 73 5
/usr 90 3
|