#!/bin/ksh ####### Error Log Script ################################################################# ########################################################################################### function find { flag=0 if [ ! -d ~/logs ]; then mkdir ~/logs fi date=`date +%Y-%m-%d-%s` while true do grep -ni "$keyword" $source | while read line do if [ "$(ls -A ~/logs 2> /dev/null)" == "" ]; then echo $line >> ~/logs/sanity-$date.log flag=1 else result=`cat ~/logs/* | grep -F "$line"` if [ "$result" != "$line" ]; then echo $line >> ~/logs/sanity-$date.log flag=1 fi fi done done if [ $flag == 1 ]; then echo "#####################################################################################" echo "Errors or Exception found. Extraction is copied in the file ~/logs/sanity-$date.log" echo "#####################################################################################" else echo "###################" echo "No new logs Found" echo "###################" fi } action=$1 #Start or Stop dir=$2 file=$3 #Source filename keyword=$4 #Search String case $action in start) if [ "$dir" == "" ]; then echo "Enter the path" exit fi if [ ! -d $dir ]; then echo "Directory not found" exit fi if [ "$file" == "" ]; then echo "Enter the filename" exit fi if [ ! -f $dir/$file ]; then echo "No File found" exit fi source=$dir/$file if [ "$keyword" == "" ]; then echo "Enter a keyword for search" exit fi find exit ;; stop) echo "killed" exit ;; *) echo '######################################################################' echo 'Usage: sh parser.sh [start/stop] [Directory path] [Filename] [Keyword]' echo 'Sample: sh parser.sh start /var/log/ messages "test"' echo '######################################################################' exit ;; esac