監(jiān)控alert 日志
在江岸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,江岸網(wǎng)站建設費用合理。
思路:按alert日志行號取當前最后一行和上一次掃描的行對比 大于等于上一次掃描的行 就從上一次掃描的行開始 掃描到最后一行
#!/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 "未掃描到錯誤信息." 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
腳本會自動掃描指定的關鍵字,在這里指定的是ORA- ,然后只需要部署到crontab里即可。