środa, grudnia 03, 2008

Prosty skrypt do przyrostowego monitorowania logów

#!/bin/sh
function check_log() {
logfile="$1"
pattern="$2"
if [[ -z $pattern ]] ; then
echo "Wzorzec do wyszukiwania nie moze byc pusty"
return 1
fi
if [[ -f $logfile ]] ; then
size=`LC_ALL=C stat ${logfile} | grep Size | cut -d" " -f4 2>/dev/null`
old_size=`cat $logfile.size 2>/dev/null`
diff=`expr $size - $old_size 2>/dev/null`
if [[ -z $diff ]] ; then
diff=$size
fi
if [[ $diff -lt 0 ]] ; then
diff=$size
fi
if [[ $diff -gt 0 ]] ; then
echo "Plik zmodyfikowany, roznica $diff bajtow"
tail -c $diff $logfile | grep -A 20 -B 5 -e "${pattern}" 2>/dev/null 1> $logfile.err
cat $logfile.err
else
echo "Plik bez zmian, rozmiar $size"
fi

echo "$size" > $logfile.size
else
echo "Nie ma takiego pliku $logfile"
fi
}

logfile="/home/weblogic/bea/domains/WebPortal/servers/WebPortalServer1/logs/WebPortalServer1.out"
pattern="Exception"
check_log $logfile $pattern

0 komentarze: