<强> 强>
# !/bin/bash scriptHome=' dirname $ 0 ' scriptName=' basename $ 0 ' logDir=$ scriptHome/日志 #日志文件=$ logDir/scriptName_美元(date “+ % Y % m % d”) . log 日志文件=$ logDir/ora-error.log runfile=$ logDir/run.log alertLogFile=/u01/app/oracle/诊断接头/rdbms/orcl/orcl/跟踪/alert_orcl.log ip=' | ifconfig sed “2 q’, | awk -F ”(,,) + ', '/inet/{print 4美元}' ' oraErrMsg=奥拉- mailTo=737735250 @qq.com if [!大敌;-d logDir 美元;);然后 ,,mkdir -p  logDir美元 fi if [!大敌;-f alertLogFile 美元;);然后 ,,echo “错误:,alertLogFile 美元;no  such file 或是目录。” ,,exit 1 fi touch runfile美元 startLine=$ (cat runfile美元) endLine=$ (cat alertLogFile 美元;|,wc - l) if [,“x startLine美元”==,“x”,),然后 startLine才能=1 其他的 startLine才能=$ (expr startLine 美元;+,1) fi echo “===,正在获取警告日志信息……” if [,美元endLine -le  startLine 美元;);然后 # echo 才能“未扫描到错误信息。” echo 才能;“ ,exit 0 fi echo “===$ (date “+ Y % - % - % d % H: % m: % S”),扫描行$ {startLine}, {endLine}美元…”,在祝辞,,logfile 美元; 内容=' | cat alertLogFile 美元;sed -n “{startLine}, {endLine}美元p "的 oraError=' echo “内容”美元,|,grep “oraErrMsg美元”,|,tee -a 美元日志文件的 if [,“x $ oraError " !=,“x”,),然后 ,echo “oraError美元”,|,mutt -s “美元(date “+ Y % - % - % d % H: % m: % S”), ip 美元;警告日志告警”,-b mailTo美元 fi 美元,echo endLine 美元的在,runfile
脚本会自动扫描指定的关键字,在这里指定的是奥拉,然后只需要部署到crontab里即可。