Monitoring Tomcat catalina.out
Where I work, people are too fond of running tail(1) on catalina.out in screen(1). This is a better way, since it can run in cron and is more polite to the system overall.
#!/bin/sh
# Catalina monitoring script
echo catalina.out monitoring
logFile=/var/log/tomcat5/catalina.out
scanFile=/var/log/tomcat5/catalina.out.scan
lastline=0
if [ -f $scanFile ];
then
lastline=`cat $scanFile`
fi
newlastline=`wc -l $logFile | cut -d' ' -f1`
if [ $lastline -gt $newlastline ];
then
incremental=$newlastline
else
incremental=`expr $newlastline - $lastline`
fi
errors=`tail -n $incremental $logFile | egrep "Exception|WARN|FATAL"` isErrors=${#errors}
if [ $isErrors -gt 0 ];
then
echo $errors > emailbody
mail -s "Catalina Error,Fatal or warn." $email < emailbody
cat emailbody; rm -rf emailbody
fi
echo $newlastline > $scanFile
Final note: I'm pretty sure I didn't write this, it's not my style.