溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SHELL腳本監(jiān)控oracle alert日志

發(fā)布時(shí)間:2020-07-04 15:12:58 來(lái)源:網(wǎng)絡(luò) 閱讀:3543 作者:xuwu147220591 欄目:關(guān)系型數(shù)據(jù)庫(kù)

監(jiān)控alert 日志

思路:按alert日志行號(hào)取當(dāng)前最后一行和上一次掃描的行對(duì)比 大于等于上一次掃描的行 就從上一次掃描的行開(kāi)始 掃描到最后一行

#!/bin/bash
scriptHome=`dirname $0`
scriptName=`basename $0`
logDir=$scriptHome/logs
#logfile=$logDir/$scriptName_$(date "+%Y%m%d").log
logfile=$logDir/ora-error.log
runfile=$logDir/run.log
alertLogFile=/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
ip=`ifconfig | sed '2q' | awk -F '[ :]+' '/inet/{print $4}'`
oraErrMsg=ORA-
mailTo=737735250@qq.com
if [ ! -d $logDir ]; then
   mkdir -p $logDir
fi
if [ ! -f $alertLogFile ]; then
   echo "Error: $alertLogFile no such file or directory."
   exit 1
fi
touch $runfile
startLine=$(cat $runfile)
endLine=$(cat $alertLogFile | wc -l)
if [ "x$startLine" == "x" ]; then
  startLine=1
else
  startLine=$(expr $startLine + 1)
fi
echo "=== 正在獲取警告日志信息..."
if [ $endLine -le $startLine ]; then
  #echo "未掃描到錯(cuò)誤信息."
  echo ""
  exit 0
fi
echo "===$(date "+%Y-%m-%d %H:%M:%S") 掃描行${startLine},${endLine}..." >>  $logfile 
content=`cat $alertLogFile | sed -n "${startLine},${endLine}p"`
oraError=`echo "$content" | grep "$oraErrMsg" | tee -a $logfile`
if [ "x$oraError" != "x" ]; then
 echo "$oraError" | mutt -s "$(date "+%Y-%m-%d %H:%M:%S") $ip 警告日志告警" -b $mailTo
fi
echo $endLine > $runfile


腳本會(huì)自動(dòng)掃描指定的關(guān)鍵字,在這里指定的是ORA- ,然后只需要部署到crontab里即可。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI