#!/bin/sh
# 
## modem.sh  Mon 07/24/00 11:31:27 AM
#
## Hal Burgiss <hal@foobox.net>
#
## Logs data from my SpeedStream 5660 DSL modem
## Runs via cron. To be run as root. Mails warning if 
## some values are exceeded.
#
## Requires my 5660_stats.pl and fping.
#
#####################################################################

LOG=/var/log/modem
LOCKFILE=/var/run/modem.sh
TMPFILE=/var/tmp/_modem
RETVAL=0
MAILLOCK=/var/tmp/_modem.sh_lock
MIN_SNR=3
MAX_SNR=99
MAX_OP=7

if [ -f $LOCKFILE ]; then
 echo Error, Lock file in place: $LOCKFILE.
 exit 1
fi

rm -f $TMPFILE

if ! ( fping speedie ) >/dev/null 2>&1; then
  if ! [ -f /etc/down ]; then
   echo speedie is down 
  fi
 echo `date`: modem not responding >> $LOG
 echo >> $LOG
 exit 1
fi

#lwp-request -t 1 -C hal:asdfasdf http://speedie
touch $LOCKFILE
# capture output for log file...
nice -n 19 /usr/local/bin/5660_stats.pl $* >> $TMPFILE

# export testing=1
# if `perl -e 'exit ! ($ENV{testing}>2)'` ; then
#  echo yes
# fi

if [ -f $TMPFILE ]; then
 echo >> $LOG
 cat $TMPFILE >>$LOG
 echo >>$LOG
 # test for modem going off deep end...
 snr=`grep SNR $TMPFILE |awk '{print $4}' |sed 's/\..*$//'`
 output=`grep Output $TMPFILE |awk '{print $5}' |sed 's/\..*$//'`
     if [ $snr -lt $MIN_SNR ] || [ $output -gt $MAX_OP ] || [ $snr -gt $MAX_SNR ]; then
       ! [ -f $MAILLOCK ] && echo Warning: && echo && cat $TMPFILE
       ! [ -f $MAILLOCK ] && echo && echo "REMEMBER: service dslwatcher start \&\& rmf $MAILLOCK !!!"
       ! [ -f $MAILLOCK ] && echo && echo "REMEMBER: dslwatcher!!!!!!!!!"
       ! [ -f $MAILLOCK ] && touch $MAILLOCK
     fi
else
 echo Failed to create $TMPFILE
 RETVAL=1
fi

rm -f $LOCKFILE $TMPFILE
exit $RETVAL

#--- eof modem.sh
