#!/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)" == "" ]; t +hen echo $line >> ~/logs/sanity-$date.log flag=1 else result=`cat ~/logs/* | grep -F "$line" +` if [ "$result" != "$line" ]; then echo $line >> ~/logs/sanity-$d +ate.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] [Direct +ory path] [Filename] [Keyword]' echo 'Sample: sh parser.sh start /var/log/ mes +sages "test"' echo '######################################## +##############################' exit ;; esac
In reply to Re^2: RFC: UNIX shell to Perl converter
by Anonymous Monk
in thread RFC: UNIX shell to Perl converter
by cdarke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |