1
0
Files
irix-657m-src/eoe/cmd/availmon/amstart
2022-09-29 17:59:04 +03:00

730 lines
19 KiB
Bash
Executable File

#! /sbin/sh
#
#ident "$Revision: 1.2 $"
#
# This script should not be executed after boot because it
# may report system reboot and cause confusion.
#
#
# availmon/amstart uses /var/adm/avail directory,
# and /var/adm/avail/availlog for logging info
#
CMD=$0
AMRVERSIONNUM=2.1
AVAILDIR=/var/adm/avail
SAVEDIR=$AVAILDIR/.save
CONFIGDIR=$AVAILDIR/config
USRETCDIR=/usr/etc
OPTIONS=`cat /etc/config/savecore.options 2> /dev/null`
CRASHDIR=""
if [ "$OPTIONS" != "" ] ; then
for DIR in $OPTIONS ; do
if [ -d "$DIR" ] ; then
CRASHDIR=$DIR
fi
done
if [ "$CRASHDIR" = "" ] ; then
CRASHDIR=/var/adm/crash
fi
else
CRASHDIR=/var/adm/crash
fi
AMREGISTER=$USRETCDIR/amregister
AMCONFIG=$USRETCDIR/amconfig
AMSYSINFO=$USRETCDIR/amsysinfo
AMNOTIFY=$USRETCDIR/amnotify
AMSYSLOG=$USRETCDIR/amsyslog
AMTIME1970=$USRETCDIR/amtime1970
AMTICKERD=$USRETCDIR/amtickerd
TICKFILE=$AVAILDIR/lasttick
TICKDURATION=300
AMSYSLOGFILE=$CRASHDIR/syslog
SYSLOGDCONF=/etc/syslog.conf
if [ -f "$SYSLOGDCONF" ] ; then
SYSLOGFILE=`cat $SYSLOGDCONF | grep -v "^#" | grep amfilter | tail -1 | awk '{print $NF}' 2>/dev/null`
if [ "z$SYSLOGFILE" = "z" -o ! -f "$SYSLOGFILE" ] ; then
SYSLOGFILE=/var/adm/SYSLOG
fi
else
SYSLOGFILE=/var/adm/SYSLOG
fi
# Use SYSLOGFILE to generate OSYSLOGFILE
OSYSLOGFILE=`dirname $SYSLOGFILE`\/o`basename $SYSLOGFILE`
LASTSYSLOG=$SAVEDIR/lastsyslog
LOGFILE=$AVAILDIR/availlog
PREVSTARTFILE=$SAVEDIR/prevstart
EVENTFILE=$SAVEDIR/event
SUEVENTFILE=$SAVEDIR/suevent
SCRATCHFILE=$AVAILDIR/init.scratch
CRASHLOGFILE=$CRASHDIR/crashlog
SINCE1970=`$AMTIME1970`
SINCE1970DATE=`$AMTIME1970 -d $SINCE1970`
BOUND=-1
AUTOEMAIL=$CONFIGDIR/autoemail
TICKERDFILE=$CONFIGDIR/tickerd
AUTOEMAILLIST=$CONFIGDIR/autoemail.list
AVAILREPFILE=$CRASHDIR/availreport
DIAGREPFILE=$CRASHDIR/diagreport
PAGERREPFILE=$CRASHDIR/pagerreport
TMPFILE=$CRASHDIR/tmpfile
DIFFFILE=$CRASHDIR/difffile
TMPSORTFILE=$CRASHDIR/tmpsortfile
PLATFORM=`uname -m`
SERIALNUM=""
if $AMCONFIG hinvupdate ; then
HINVUPDATE=1
else
HINVUPDATE=0
fi
comparefile() {
# arg: $1 = saved configuration file
# $2 = configuration file to be compared
# ret: 0 = files are different
# 1 = $1 missing or files are the same
if [ ! -f $SAVEDIR/$1 ] ; then
return 1
fi
if [ ! -f $2 ] ; then
echo "System configuration file $2 is missing!!"
echo "Please try re-installing it"
logger -t availmon -p err -i availmon config file $2 is missing
return 1
fi
diff $SAVEDIR/$1 $2 > /dev/null
if [ $? -ne 0 ] ; then
return 0
else
return 1
fi
}
compareandsavefile() {
# arg: $1 = saved configuration file
# $2 = configuration file to be compared
# ret: 0 = files are different
# 1 = files are the same
diff $SAVEDIR/$1 $2 > $DIFFFILE
if [ $? -ne 0 ] ; then
cp $2 $SAVEDIR/$1
return 0
else
return 1
fi
}
checkandappend() {
# due to hinv's bug that cannot generate hinv output in a special
# order, availmon needs to sort hinv's output and then compare with
# saved sorted data
if [ "$1" = "hinv" ] ; then
if [ -x $3 ] ; then
if [ ! -f $SAVEDIR/$1 ] ; then
touch $SAVEDIR/$1
fi
if [ ! -f $SAVEDIR/$1.sort ] ; then
touch $SAVEDIR/$1.sort
fi
$3 $4 $5 $6 $7 > $TMPFILE
sort $TMPFILE > $TMPSORTFILE
if compareandsavefile $1.sort $TMPSORTFILE ; then
NOINSTE=0
diff $SAVEDIR/$1 $TMPFILE > $DIFFFILE
cp $TMPFILE $SAVEDIR/$1
echo "$2|Begin" >> $DIAGREPFILE
cat $TMPFILE >> $DIAGREPFILE
echo "$2|End" >> $DIAGREPFILE
echo "$2|Begin" >> $LOGFILE
cat $DIFFFILE >> $LOGFILE
echo "$2|End" >> $LOGFILE
fi
fi
elif [ -x $3 ] ; then
if [ ! -f $SAVEDIR/$1 ] ; then
touch $SAVEDIR/$1
fi
$3 $4 $5 $6 $7 > $TMPFILE
if compareandsavefile $1 $TMPFILE ; then
NOINSTE=0
echo "$2|Begin" >> $DIAGREPFILE
cat $TMPFILE >> $DIAGREPFILE
echo "$2|End" >> $DIAGREPFILE
echo "$2|Begin" >> $LOGFILE
cat $DIFFFILE >> $LOGFILE
echo "$2|End" >> $LOGFILE
fi
fi
}
#
# generate diag report
#
gendiagrep() {
NOINSTE=1
if [ $BOUND -ge 0 ] ; then
NOINSTE=0
if [ -f $CRASHDIR/analysis.$BOUND ] ; then
echo "ICRASH|Begin" >> $DIAGREPFILE
cat $CRASHDIR/analysis.$BOUND >> $DIAGREPFILE
echo "ICRASH|End" >> $DIAGREPFILE
fi
echo "SYSLOG|Begin" >> $DIAGREPFILE
if [ -f $AMSYSLOGFILE ] ; then
tail -700 $AMSYSLOGFILE >> $DIAGREPFILE
else
$AMSYSLOG -S $SYSLOGFILE -O $OSYSLOGFILE >> $AMSYSLOGFILE
tail -700 $AMSYSLOGFILE >> $DIAGREPFILE
fi
echo "SYSLOG|End" >> $DIAGREPFILE
elif [ $EVENTCODE -eq -5 -o $EVENTCODE -eq -6 -o $EVENTCODE -eq -14 ] ; then
NOINSTE=0
echo "SYSLOG|Begin" >> $DIAGREPFILE
if [ -f $AMSYSLOGFILE ] ; then
tail -1000 $AMSYSLOGFILE >> $DIAGREPFILE
else
$AMSYSLOG -S $SYSLOGFILE -O $OSYSLOGFILE >> $AMSYSLOGFILE
tail -1000 $AMSYSLOGFILE >> $DIAGREPFILE
fi
echo "SYSLOG|End" >> $DIAGREPFILE
fi
set `/sbin/stat -mq /var/inst/hist $SAVEDIR/versions 2>/dev/null` >/dev/null
if [ ! -r $SAVEDIR/versions -o \( "$2" -a "$1" -gt "$2" \) ] ; then
checkandappend versions VERSIONS /usr/sbin/versions -n eoe.sw.base support.sw.fru "patchSG*"
touch $SAVEDIR/versions
fi
if [ $HINVUPDATE -eq 1 ] ; then
checkandappend hinv HINV /usr/bin/hinv -mvv
checkandappend gfxinfo GFXINFO /usr/gfx/gfxinfo -vv
else
echo "HINV|Begin\nunknown\nHINV|End" >> $DIAGREPFILE
echo "GFXINFO|Begin\nunknown\nGFXINFO|End" >> $DIAGREPFILE
fi
return $NOINSTE
}
getid() {
OLDID=""
HOSTNAME=`$AMSYSINFO -n`
if [ "$HOSTNAME" = "unknown" ] ; then
logger -t availmon -p err -i cannot get hostname
if [ -f $SAVEDIR/hostname ] ; then
HOSTNAME=`cat $SAVEDIR/hostname`
fi
else
if [ -f $SAVEDIR/hostname ] ; then
HOSTNAME1=`cat $SAVEDIR/hostname`
if [ "$HOSTNAME" != "$HOSTNAME1" ] ; then
echo "$HOSTNAME" > $SAVEDIR/hostname
if [ "$HOSTNAME1" != "unknown" ] ; then
OLDID="OLDHOSTNAME|$HOSTNAME1"
fi
fi
else
echo "$HOSTNAME" > $SAVEDIR/hostname
fi
fi
SERIALNUM=`$AMSYSINFO -s`
if [ "$SERIALNUM" = "unknown" ] ; then
case $PLATFORM in
IP19 | IP21 | IP22 | IP25 | IP26 | IP27 | IP28 | IP30 | IP32)
echo -n "$CMD: Warning: the machine-readable serial number,"
echo "$SERIALNUM, is invalid."
echo "Please contact SGI support to correct it."
logger -t availmon -p err -i the machine-readable serial number is invalid
;;
esac
if [ -f $SAVEDIR/serialnum ] ; then
SERIALNUM=`cat $SAVEDIR/serialnum`
$AMSYSINFO -s $SERIALNUM > /dev/null
if [ $? -ne 0 ] ; then
echo "$CMD: Warning: the saved serial number, $SERIALNUM,"
echo " is invalid."
logger -t availmon -p warning -i the saved serial number is invalid
fi
fi
else
if [ $HINVUPDATE -eq 1 ] ; then
if [ -f $SAVEDIR/serialnum ] ; then
SERIALNUM1=`cat $SAVEDIR/serialnum`
if [ "$SERIALNUM" != "$SERIALNUM1" ] ; then
if $AMSYSINFO -s $SERIALNUM1 > /dev/null ; then
echo -n "$CMD: Warning: the saved serial number,"
echo "$SERIALNUM1, is different from"
echo " the machine-readable serial number, $SERIALNUM."
echo "Use the machine-readable one."
logger -t availmon -p warning -i the saved serial number is different from the machine-readable one
else
echo -n "$CMD: Warning: the saved serial number,"
echo "$SERIALNUM1, is invalid."
echo "Use the machine-readable serial number, $SERIALNUM."
echo "$SERIALNUM" > $SAVEDIR/serialnum
logger -t availmon -p warning -i the saved serial number is invalid
fi
echo "$SERIALNUM" > $SAVEDIR/serialnum
if [ "$SERIALNUM1" != "unknown" ] ; then
if [ "$OLDID" != "" ] ; then
OLDID="OLDSERIALNUM|$SERIALNUM1\n$OLDID"
else
OLDID="OLDSERIALNUM|$SERIALNUM1"
fi
fi
fi
else
echo "$SERIALNUM" > $SAVEDIR/serialnum
fi
fi
fi
if [ "$OLDID" != "" ] ; then
echo "SERIALNUM|$SERIALNUM" > $AVAILREPFILE
echo "HOSTNAME|$HOSTNAME" >> $AVAILREPFILE
echo "AMRVERSION|$AMRVERSIONNUM" >> $AVAILREPFILE
echo "UNAME|`uname -Ra`" >> $AVAILREPFILE
echo "EVENT|-18|$SINCE1970|$SINCE1970DATE" >> $AVAILREPFILE
echo "EVENT|-18|$SINCE1970|$SINCE1970DATE" >> $LOGFILE
echo "$OLDID" >> $AVAILREPFILE
echo "$OLDID" >> $LOGFILE
MSG="SUMMARY|Begin\n$OLDID\nSUMMARY|End"
echo "$MSG" >> $AVAILREPFILE
echo "$MSG" >> $LOGFILE
if $AMCONFIG autoemail -s ; then
$AMNOTIFY -c $AUTOEMAILLIST -a $AVAILREPFILE -i $AVAILREPFILE -r
fi
fi
}
geteventname() {
# arg: $1: event code
# $2: pager report file
case $1 in
-3)
MSG="Panic"
;;
-4)
MSG="Panic (H/W)"
;;
-5)
MSG="Interrupt"
;;
-6)
MSG="System off"
;;
-7)
MSG="Power failure"
;;
-8)
MSG="Deregistration"
;;
-9)
MSG="Registration"
;;
-10)
MSG="No error"
;;
-11)
MSG="Hardware error"
;;
-12)
MSG="Software error"
;;
-13)
MSG="Status report"
;;
-14)
MSG="Panic (S/W)"
;;
-15)
MSG="NMI"
;;
-16)
MSG="System reset"
;;
-17)
MSG="Power cycle"
;;
-18)
MSG="System ID change"
;;
*)
MSG="Controlled shutdown"
;;
esac
echo "$MSG" >> $2
}
#
# check for improper installation and corruption
#
if [ ! -d $AVAILDIR ] ; then
echo "\n$CMD: ERROR: cannot find directory $AVAILDIR"
echo "Please try re-installing availmon\n"
logger -t availmon -p err -i cannot find directory $AVAILDIR
exit
elif [ ! -x $AMREGISTER -o ! -x $AMNOTIFY -o ! -x $AMSYSLOG -o ! -x $AMTICKERD \
-o ! -x $AMTIME1970 -o ! -x $AMSYSINFO -o ! -x $AMCONFIG ] ; then
echo "\n$CMD: ERROR: executable files corrupted"
echo "Please try re-installing availmon\n"
logger -t availmon -p err -i executable files corrupted
exit
elif [ ! -d $SAVEDIR ] ; then
#
# create .save directory at the first time reboot
# of the first installation of availmon
#
mkdir $SAVEDIR
if [ -f $CRASHDIR/bounds ] ; then
cp $CRASHDIR/bounds $SAVEDIR/bounds
else
echo "0" > $SAVEDIR/bounds
fi
$AMSYSINFO -s > $SAVEDIR/serialnum
$AMSYSINFO -n > $SAVEDIR/hostname
MSG=`$AMTIME1970 -i`
echo "PREV$MSG" > $PREVSTARTFILE
if [ ! -f $LOGFILE ] ; then
echo "$MSG" > $LOGFILE
fi
if [ -f $SYSLOGFILE ] ; then
tail -1 $SYSLOGFILE > $LASTSYSLOG
fi
if [ -x /usr/bin/hinv ] ; then
/usr/bin/hinv -mvv > $SAVEDIR/hinv
sort $SAVEDIR/hinv > $SAVEDIR/hinv.sort
fi
if [ -x /usr/sbin/versions ] ; then
/usr/sbin/versions -n eoe.sw.base support.sw.fru "patchSG*" > $SAVEDIR/versions
fi
if [ -x /usr/gfx/gfxinfo ] ; then
/usr/gfx/gfxinfo -vv > $SAVEDIR/gfxinfo
fi
cp $CONFIGDIR/autoemail $SAVEDIR
cp $CONFIGDIR/autoemail.list $SAVEDIR
# if tickerd is on, use user-level daemon
if $AMCONFIG tickerd ; then
$AMTICKERD $TICKFILE $TICKDURATION &
else
rm -f $TICKFILE
fi
rm -f $AVAILDIR/install.sh /etc/init.d/avail /etc/rc0.d/K05avail
rm -f /etc/rc2.d/S95avail /etc/config/avail /etc/config/availmon
exit
fi
#
# Start processing
#
if [ -f $AVAILDIR/install.sh ] ; then
$AVAILDIR/install.sh
rm -f $AVAILDIR/install.sh
fi
getid
LASTTICK=`cat $TICKFILE 2> /dev/null`
LASTTICK=${LASTTICK:=-1}
if [ $LASTTICK -ge 0 ] ; then
LASTTICKDATE=`$AMTIME1970 -d $LASTTICK`
else
LASTTICKDATE="unknown"
fi
# if tickerd is on, use user-level daemon
if $AMCONFIG tickerd ; then
$AMTICKERD $TICKFILE $TICKDURATION &
else
rm -f $TICKFILE
fi
if [ -f $SAVEDIR/autoemail ] ; then
if comparefile autoemail $CONFIGDIR/autoemail ; then
if $AMCONFIG autoemail -s ; then
$AMREGISTER -d -c $SAVEDIR/autoemail.list
cp $CONFIGDIR/autoemail $SAVEDIR/autoemail
cp $CONFIGDIR/autoemail.list $SAVEDIR/autoemail.list
else
$AMREGISTER -r -c $CONFIGDIR/autoemail.list
cp $CONFIGDIR/autoemail $SAVEDIR/autoemail
cp $CONFIGDIR/autoemail.list $SAVEDIR/autoemail.list
fi
else
if comparefile autoemail.list $CONFIGDIR/autoemail.list ; then
$AMCONFIG -k
fi
fi
else
cp $CONFIGDIR/autoemail $SAVEDIR/autoemail
cp $CONFIGDIR/autoemail.list $SAVEDIR/autoemail.list
if $AMCONFIG autoemail ; then
$AMREGISTER -r
fi
fi
if [ -f $CRASHDIR/bounds ] ; then
if [ -f $SAVEDIR/bounds ] ; then
diff $SAVEDIR/bounds $CRASHDIR/bounds > /dev/null
if [ $? -ne 0 ] ; then
BOUND=`cat $SAVEDIR/bounds`
cp $CRASHDIR/bounds $SAVEDIR/bounds
SUMMARYFILE=$CRASHDIR/summary.$BOUND
FRUFILE=$CRASHDIR/fru.$BOUND
AMSYSLOGFILE=$CRASHDIR/syslog.$BOUND
fi
else
cp $CRASHDIR/bounds $SAVEDIR/bounds
fi
else
echo "0" > $SAVEDIR/bounds
fi
HEADER="SERIALNUM|$SERIALNUM\nHOSTNAME|$HOSTNAME\nAMRVERSION|$AMRVERSIONNUM\nUNAME|`uname -Ra`"
echo "$HEADER" > $AVAILREPFILE
echo "$HEADER" > $DIAGREPFILE
PHEADER="$HOSTNAME|"
echo "$PHEADER" > $PAGERREPFILE
if [ -f $PREVSTARTFILE ] ; then
PSMSG=`cat $PREVSTARTFILE`
elif [ -f $LOGFILE ] ; then
PSMSG=`grep '^START|' $LOGFILE | tail -1`
else
echo "\nERROR: $CMD: availlog and saved data were corrupted!!"
echo "Please check file system\n"
MSG="START|$SINCE1970|$SINCE1970DATE"
echo "$MSG" > $LOGFILE
PSMSG="PREV$MSG"
fi
EXTRASUEVENT=0
if [ -f $SUEVENTFILE ] ; then
#
# check if system boot time is later than single-user shutdown
# if yes, there is another shutdown/crash event
#
BOOTTIME=`$AMTIME1970 -i | cut -f2 -d'|'`
EVENTLINE=`cat $SUEVENTFILE`
EVENTTIME=`echo $EVENTLINE | cut -f3 -d'|'`
if [ $BOOTTIME -ge $EVENTTIME ] ; then
EXTRASUEVENT=1
cp -f $AVAILREPFILE $AVAILREPFILE.su
cp -f $DIAGREPFILE $DIAGREPFILE.su
cp -f $PAGERREPFILE $PAGERREPFILE.su
echo "$PSMSG" >> $AVAILREPFILE.su
echo "$PSMSG" >> $DIAGREPFILE.su
echo "$EVENTLINE" >> $LOGFILE
echo "$EVENTLINE" >> $AVAILREPFILE.su
echo "$EVENTLINE" >> $DIAGREPFILE.su
EVENTCODE=`echo $EVENTLINE | cut -f2 -d'|'`
geteventname $EVENTCODE $PAGERREPFILE.su
MSG="LASTTICK|$LASTTICK|$LASTTICKDATE"
echo "$MSG" >> $LOGFILE
echo "$MSG" >> $AVAILREPFILE.su
echo "$MSG" >> $DIAGREPFILE.su
LASTTICK=-1
LASTTICKDATE="unknown"
STATUSINTERVAL=`cat $CONFIGDIR/statusinterval 2> /dev/null`
echo "STATUSINTERVAL|$STATUSINTERVAL" >> $AVAILREPFILE.su
echo "STATUSINTERVAL|$STATUSINTERVAL" >> $DIAGREPFILE.su
else
echo "$PSMSG" >> $AVAILREPFILE
echo "$PSMSG" >> $DIAGREPFILE
mv $SUEVENTFILE $EVENTFILE
fi
else
echo "$PSMSG" >> $AVAILREPFILE
echo "$PSMSG" >> $DIAGREPFILE
fi
#
# check coredump first - report crash if system crashes after
# controlled shutdown
#
if [ $BOUND -ge 0 ] ; then
if [ -f $SUMMARYFILE ] ; then
if grep 'PANIC STRING' $SUMMARYFILE | grep NMI > /dev/null ; then
EVENTCODE=-15
elif [ -f $FRUFILE ] ; then
cat $FRUFILE >> $SUMMARYFILE
if grep -i 'FRU ANALY' $FRUFILE > /dev/null ; then
if grep 'FRU ANALYZER' $FRUFILE | grep -i 'No error' > /dev/null ; then
EVENTCODE=-14
elif grep -i 'SOFTWARE' $FRUFILE > /dev/null ; then
EVENTCODE=-14
elif grep 'Inconclusive hardware error state' $FRUFILE > /dev/null ; then
EVENTCODE=-3
else
EVENTCODE=-4
fi
else
EVENTCODE=-3
fi
else
EVENTCODE=-3
fi
EVENTTIME=`awk '/CRASH TIME/ {print $3}' $SUMMARYFILE`
EVENTDATE=`awk '/CRASH TIME/ {print $4, $5, $6, $7, $8}' $SUMMARYFILE`
elif [ -f $CRASHLOGFILE.$BOUND ] ; then
EVENTDATE=`awk '/crash time/ {print $3, $4, $5, $6, $7}' $CRASHLOGFILE.$BOUND`
EVENTTIME=`$AMTIME1970 -t $EVENTDATE`
EVENTCODE=-3
else
EVENTTIME=`expr $SINCE1970 - 60`
EVENTDATE=`$AMTIME1970 -d $EVENTTIME`
EVENTCODE=-3
fi
EVENTLINE="EVENT|$EVENTCODE|$EVENTTIME|$EVENTDATE"
elif [ -f $EVENTFILE ] ; then
EVENTLINE=`cat $EVENTFILE`
EVENTCODE=`echo $EVENTLINE | cut -f2 -d'|'`
EVENTTIME=`echo $EVENTLINE | cut -f3 -d'|'`
EVENTDATE=`$AMTIME1970 -d $EVENTTIME`
else
$AMSYSLOG -S $SYSLOGFILE -O $OSYSLOGFILE > $AMSYSLOGFILE
case $PLATFORM in
IP19 | IP21 | IP25)
if grep "NMI" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-15
elif grep "SYSTEM RESET" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-16
elif grep "POWER CYCLE" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-17
elif grep "SYSTEM OFF" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-6
elif grep "POWER FAIL" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-7
else
EVENTCODE=-5
fi
;;
IP27)
if grep "NMI pending" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-15
elif grep "System reset pending" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-16
elif grep "Remote power-cycle command" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-17
elif grep "Module keyswitch turned OFF" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-6
elif grep "AC power lost" $AMSYSLOGFILE > /dev/null ; then
EVENTCODE=-7
else
EVENTCODE=-5
fi
;;
*)
EVENTCODE=-5
;;
esac
EVENTLINE="EVENT|$EVENTCODE|-1|unknown"
EVENTTIME=-1
EVENTDATE="unknown"
fi
if [ $EXTRASUEVENT -eq 1 ] ; then
if [ $EVENTTIME -eq -1 ] ; then
SUSTARTTIME=`expr $SINCE1970 - 60`
SUSTARTDATE=`$AMTIME1970 -d $SUSTARTTIME`
MSG="START|$SUSTARTTIME|$SUSTARTDATE|NOTMULTIUSER"
else
MSG="START|$EVENTTIME|$EVENTDATE|NOTMULTIUSER"
fi
echo "$MSG" >> $AVAILREPFILE.su
echo "$MSG" >> $DIAGREPFILE.su
echo "PREV$MSG" >> $AVAILREPFILE
echo "PREV$MSG" >> $DIAGREPFILE
if $AMCONFIG autoemail ; then
if [ "$SERIALNUM" != "unknown" ] ; then
$AMNOTIFY -c $AUTOEMAILLIST -a $AVAILREPFILE.su -d $DIAGREPFILE.su -p $PAGERREPFILE.su &
fi
fi
fi
echo $EVENTLINE >> $LOGFILE
echo $EVENTLINE >> $AVAILREPFILE
echo $EVENTLINE >> $DIAGREPFILE
geteventname $EVENTCODE $PAGERREPFILE
MSG="LASTTICK|$LASTTICK|$LASTTICKDATE"
echo "$MSG" >> $LOGFILE
echo "$MSG" >> $AVAILREPFILE
echo "$MSG" >> $DIAGREPFILE
STATUSINTERVAL=`cat $CONFIGDIR/statusinterval 2> /dev/null`
echo "STATUSINTERVAL|$STATUSINTERVAL" >> $AVAILREPFILE
echo "STATUSINTERVAL|$STATUSINTERVAL" >> $DIAGREPFILE
SMSG="START|$SINCE1970|$SINCE1970DATE"
echo "$SMSG" >> $AVAILREPFILE
echo "$SMSG" >> $DIAGREPFILE
if [ $BOUND -ge 0 ] ; then
MSG="BOUND|$BOUND"
echo "$MSG" >> $LOGFILE
if [ -f $SUMMARYFILE ] ; then
echo "SUMMARY|Begin" >> $LOGFILE
echo "SUMMARY|Begin" >> $AVAILREPFILE
echo "SUMMARY|Begin" >> $DIAGREPFILE
echo "SUMMARY|" >> $PAGERREPFILE
MSG=`grep 'PANIC STRING' $SUMMARYFILE`
echo "$MSG" >> $LOGFILE
echo "$MSG" >> $AVAILREPFILE
echo "$MSG" >> $DIAGREPFILE
echo "$MSG" >> $PAGERREPFILE
if [ $EVENTCODE -eq -4 ] ; then
tail +3 $SUMMARYFILE >> $LOGFILE
tail +3 $SUMMARYFILE >> $AVAILREPFILE
tail +3 $SUMMARYFILE >> $DIAGREPFILE
tail +3 $SUMMARYFILE >> $PAGERREPFILE
fi
echo "SUMMARY|End" >> $LOGFILE
echo "SUMMARY|End" >> $AVAILREPFILE
echo "SUMMARY|End" >> $DIAGREPFILE
fi
fi
SIZE=`/sbin/stat -sq $LOGFILE`
if [ $SIZE -ge 100000 ] ; then
mv $LOGFILE $AVAILDIR/oavaillog
echo "$SMSG" > $LOGFILE
else
echo "$SMSG" >> $LOGFILE
fi
echo "PREV$SMSG" > $PREVSTARTFILE
NOTIFYOPTIONS=" -c $AUTOEMAILLIST -a $AVAILREPFILE -p $PAGERREPFILE"
if gendiagrep ; then
NOTIFYOPTIONS="$NOTIFYOPTIONS -i $DIAGREPFILE"
else
NOTIFYOPTIONS="$NOTIFYOPTIONS -d $DIAGREPFILE"
fi
if [ "$SERIALNUM" != "unknown" ] ; then
if $AMCONFIG autoemail ; then
$AMNOTIFY $NOTIFYOPTIONS &
fi
fi
tail -1 $SYSLOGFILE > $LASTSYSLOG
rm -f $SCRATCHFILE $TMPFILE $TMPSORTFILE $DIFFFILE $SUEVENTFILE $EVENTFILE $SUMMARYFILE