#!/bin/bash
##variable##
logs_file="/root/script/messages"
fine="/tmp/fine"
fine_old="/tmp/fine_old"
searching=$1
mailID="shashi.brain11@gmail.com"
if [[ $searching == '' ]];then
echo "usage ./scriptname Error_name"
exit 0
fi
##check log file exit ##
if [[ ! -f $logs_file ]];then
echo "Path not exit $logs_file"
exit 0
fi
### grep date & time ###
old_date_time=$(tail -n1 $logs_file | awk '{print $1,$2,$3}')
export old_date=$old_date_time
### new_date_time ###
grep_min=$(echo $old_date | awk '{print $3}')
min=$(echo $grep_min | awk -F ':' '{print $1,$2+1,$3}' | sed 's/ /:/g')
declare -a shashi=(`echo $old_date`);
new_date_time=$(echo ${shashi[0]} ${shashi[1]} $min)
## search old 1 min to new 1 min ##
search=$(sed -n "/$old_date_time/,/$new_date_time/p" $logs_file 2> /dev/null)
##set variable
declare LEVEL
LEVEL=$search
## match line
search_word=$(echo "$LEVEL" | grep -oh "\W*\w* $searching \w*\W*")
if [[ $? == 0 ]];then
search_line=$(echo "$LEVEL" | grep -nr "$search_word")
$(echo "$search_line" > $fine)
$(touch $fine_old)
diff=$(diff $fine $fine_old > /dev/null 2>&1)
if [ $? == 0 ];then
copy=$(cp -r $fine $fine_old)
else
#echo "$search_line"
echo "$search_line" | mail -s "Error Found in $logs_file " $mailID
copy=$(cp -r $fine $fine_old)
fi
fi
======================
Crontab set :-
*/1 * * * * /bin/bash script.sh 404
##variable##
logs_file="/root/script/messages"
fine="/tmp/fine"
fine_old="/tmp/fine_old"
searching=$1
mailID="shashi.brain11@gmail.com"
if [[ $searching == '' ]];then
echo "usage ./scriptname Error_name"
exit 0
fi
##check log file exit ##
if [[ ! -f $logs_file ]];then
echo "Path not exit $logs_file"
exit 0
fi
### grep date & time ###
old_date_time=$(tail -n1 $logs_file | awk '{print $1,$2,$3}')
export old_date=$old_date_time
### new_date_time ###
grep_min=$(echo $old_date | awk '{print $3}')
min=$(echo $grep_min | awk -F ':' '{print $1,$2+1,$3}' | sed 's/ /:/g')
declare -a shashi=(`echo $old_date`);
new_date_time=$(echo ${shashi[0]} ${shashi[1]} $min)
## search old 1 min to new 1 min ##
search=$(sed -n "/$old_date_time/,/$new_date_time/p" $logs_file 2> /dev/null)
##set variable
declare LEVEL
LEVEL=$search
## match line
search_word=$(echo "$LEVEL" | grep -oh "\W*\w* $searching \w*\W*")
if [[ $? == 0 ]];then
search_line=$(echo "$LEVEL" | grep -nr "$search_word")
$(echo "$search_line" > $fine)
$(touch $fine_old)
diff=$(diff $fine $fine_old > /dev/null 2>&1)
if [ $? == 0 ];then
copy=$(cp -r $fine $fine_old)
else
#echo "$search_line"
echo "$search_line" | mail -s "Error Found in $logs_file " $mailID
copy=$(cp -r $fine $fine_old)
fi
fi
======================
Crontab set :-
*/1 * * * * /bin/bash script.sh 404
No comments:
Post a Comment