Я написал ниже скрипт мониторинга журнала, чтобы egrep несколько слов и перенаправить вывод в текстовый файл, и он работает нормально, но я хочу добавить к нему еще несколько нижеприведенных функциональных возможностей, что очень полезно и не очень хорошо в нем. Поэтому, пожалуйста, помогите, если можете:)
- Я распаковываю все коды ошибок, так что я хочу вместо того, чтобы переписывать все коды ошибок, я должен grep для "HTTP / 1.1" 200 ", который является успешным кодом и в любой строке которого нет этого перенаправления вывода в выходной файл.
- игнорировать любую строку, которая имеет "/ akamai / sureroute"
- сейчас я использую cronjob для запуска этого скрипта каждые 5 минут, поэтому мой скрипт будет отправлять одну и ту же ошибку снова и снова, поэтому я хочу, чтобы скрипт не отправлял одну и ту же ошибку более 3 раз. (на основе отметки времени).
- например. если сервер не работает, я не хочу, чтобы сообщения об ошибках 1000, поэтому, если есть более 100 сообщений об ошибках, сценарий должен отправить только 1 письмо.
=============
find /home/bharat/ -type f -name "apache_logs.txt" |while read file
do
RESULT=$(egrep "[^0](400|401|403|404|405|406|407|408|409|410|411|412|413|414|415|416|417|418|422|425|426|428|429|431|451|500|501|502|503|504|505|511)" $file)
if [[ ! -z $RESULT ]]
then
echo "Error(s) in $file on $HOSTNAME at "$(date)": $RESULT">> email_result.txt
fi
done