#!/bin/sh # #NADDS Agent - http://nadds.drmadcow.net/ #Routing stability check #Agent Author: Dustin Downs #Date: 2003-May-26 (V1.4) . /usr/local/bcnu/etc/bcnuenv . $BCNUHOME/agent/agent_head MSGFILE=$BCNUTMP/${BCNUAGENT}.msg TMP=$BCNUTMP/${BCNUAGENT}.tmp ERR_MSG_FILE=$BCNUTMP/${BCNUAGENT}.err OUTFILE=$BCNUTMP/${BCNUAGENT}.out rm -f $TMP $MSGFILE $ERR_MSG_FILE $OUTFILE 2>/dev/null if [ ! -d $BCNUHOME/data/${BCNUAGENT}-archive ]; then mkdir -p $BCNUHOME/data/${BCNUAGENT}-archive fi ERR="" MSG="" ERRMSG="" WARN="" WARNMSG="" for param in $BCNUPARAM do bcnu_param DEST=$p1 if [ ! -f $BCNUHOME/data/${BCNUAGENT}-archive/$DEST ]; then /usr/sbin/traceroute $DEST|awk '{print $2}'|sed s/*//g|sed 's/^[ ^t]*//' >$BCNUHOME/data/${BCNUAGENT}-archive/$DEST if [ ! -f $BCNUHOME/data/${BCNUAGENT}-archive/$DEST ]; then WARNMSG="warning - $DEST is not being monitored." echo $WARNMSG >> $ERR_MSG_FILE WARN=1 else MSG="$DEST - route is now being monitored." echo $MSG >>$MSGFILE fi fi /usr/sbin/traceroute $DEST|awk '{print $2}'|sed s/*//g|sed 's/^[ ^t]*//' >$TMP diff "$TMP" $BCNUHOME/data/${BCNUAGENT}-archive/$DEST 2> /dev/null result=$? if [ $result -eq 1 ]; then ERRMSG="error - Routing has changed for $DEST - original route backed up" timestamp=`date +%Y%m%d%H%M%S` namedtime="${DEST}_${timestamp}" echo -e "$DEST routing backed up in BCNUHOME/data/${BCNUAGENT}-archive/${namedtime}.tgz\n" >>$OUTFILE cd $BCNUHOME/data/${BCNUAGENT}-archive/ tar cfpz "$namedtime".tgz $DEST rm -f $BCNUHOME/data/${BCNUAGENT}-archive/$DEST cp -p $TMP $BCNUHOME/data/${BCNUAGENT}-archive/$DEST echo $ERRMSG >>$ERR_MSG_FILE ERR=1 elif [ $result -eq 0 ]; then MSG="ok - $DEST Routing unchanged" echo $MSG >>$MSGFILE fi done if [ -f $MSGFILE ]; then printf "Routing status:\n\n" >>$OUTFILE if [ -f $ERR_MSG_FILE ]; then cat $ERR_MSG_FILE >>$OUTFILE fi cat $MSGFILE >> $OUTFILE fi if [ $ERR ]; then BCNUMSG="$BCNU -m '$ERRMSG' -f $OUTFILE -e $BCNU_ERR -t $BCNUHOSTTYPE $BCNUHOST" bcnu_err_send elif [ $WARN ]; then BCNUMSG="$BCNU -m '$WARNMSG' -f $OUTFILE -e $BCNU_WARN -t $BCNUHOSTTYPE $BCNUHOST" bcnu_warn_send else BCNUMSG="$BCNU -m 'ok - no routing has changed' -f $OUTFILE -e $BCNU_OK -t $BCNUHOSTTYPE $BCNUHOST" bcnu_send fi