千家信息网

oracle中如何获取两天内的告警日志

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关oracle中如何获取两天内的告警日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。#!/bin/bash#author: Rui Zh
千家信息网最后更新 2026年11月02日oracle中如何获取两天内的告警日志

这篇文章将为大家详细讲解有关oracle中如何获取两天内的告警日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

#!/bin/bash
#author: Rui Zhang
#date: 2017-08-09
#email: sharpzhang_2008@126.com
export LANG=en_US.UTF-8


dir_name=/tmp/tday_log/
log_name=/tmp/tday_log/tday_log_`date +'%F'`
log_name=/tmp/tday_log/10.4.57.129_tday_`date +'%F'`.log
yday=`date -d -1day +'%a %b %d '`
tday=`date +'%a %b %d '`
yday_num=`date -d -1day +'%F'`
tday_num=`date +'%F'`
yday_md=`date -d -1day +'%b %e '`
tday_md=`date +'%b %e '`
yday_lis=`date -d -1day +'%d-%b-%Y ' | tr [a-z] [A-Z]`
tday_lis=`date +'%d-%b-%Y ' | tr [a-z] [A-Z]`


if [ ! -d "$dir_name" ];then
mkdir -p $dir_name
fi


if [ -f "$log_name" ];then
rm -f $log_name
fi




echo "###########################/var/log/messages################################" >> $log_name
echo "" >> $log_name
echo "" >> $log_name
egrep "${yday_md}|${tday_md}" /var/log/messages >> $log_name
#egrep "Jul\ 3|Jul\ 2" /var/log/messages >> $log_name
echo "" >> $log_name


function chk_db_log(){
file_name=$1
count_1=0
while read line
do
count_1=$[$count_1+1];
if [[ $line =~ $yday ]];then
break
elif [[ $line =~ $tday ]];then
break
fi
done <$file_name


count_3=`wc -l ${file_name} |awk {'print $1'}`


if [ "$count_1" = "$count_3" ];then
count_1=$[$count_1+1];
fi
echo "当前指针位置:${count_1} 文件行数:${count_3} 文件名:${file_name}"


count_2=0
while read line
do
count_2=$[$count_2+1]
if (($count_2>=count_1));then
echo "$line" >>$log_name
fi
done <$file_name


echo "" >> $log_name
}




function chk_grid_log(){
file_name=$1
count_1=0
while read line
do
count_1=$[$count_1+1];
if [[ $line =~ $yday_num ]];then
break
elif [[ $line =~ $tday_num ]];then
break
fi
# echo $line
#echo $count_1
#done <'/u01/app/oracle/diag/rdbms/test/test1/trace/alert_test1.log'
done <$file_name
#echo $count_1


count_3=`wc -l ${file_name} |awk {'print $1'}`


if [ "$count_1" = "$count_3" ];then
count_1=$[$count_1+1];
fi
echo "当前指针位置:${count_1} 文件行数:${count_3} 文件名:${file_name}"


count_2=0
while read line
do
count_2=$[$count_2+1]
if (($count_2>=count_1));then
echo "$line" >>$log_name
fi
#done <'/u01/app/oracle/diag/rdbms/test/test1/trace/alert_test1.log'
done <$file_name


echo "" >> $log_name
}


function chk_listener_log(){
file_name=$1
count_1=0
while read line
do
count_1=$[$count_1+1];
if [[ $line =~ $yday_lis ]];then
break
elif [[ $line =~ $tday_lis ]];then
break
fi
# echo $line
#echo $count_1
#done <'/u01/app/oracle/diag/rdbms/test/test1/trace/alert_test1.log'
done <$file_name
#echo $count_1


count_3=`wc -l ${file_name} |awk {'print $1'}`


if [ "$count_1" = "$count_3" ];then
count_1=$[$count_1+1];
fi
echo "当前指针位置:${count_1} 文件行数:${count_3} 文件名:${file_name}"


count_2=0
while read line
do
count_2=$[$count_2+1]
if (($count_2>=count_1));then
echo "$line" >>$log_name
fi
#done <'/u01/app/oracle/diag/rdbms/test/test1/trace/alert_test1.log'
done <$file_name


echo "" >> $log_name
}
#echo $count_1


echo "############################db_log##########################################" >> $log_name
echo "" >> $log_name
echo "" >> $log_name


chk_db_log /u01/app/oracle/diag/rdbms/test/test1/trace/alert_test1.log


echo "############################asm_log#########################################" >> $log_name
echo "" >> $log_name
echo "" >> $log_name


chk_db_log /u01/app/oracle/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log


echo "############################grid_log########################################" >> $log_name
echo "" >> $log_name
echo "" >> $log_name


chk_grid_log /u01/app/11.2.0/grid/log/zhangr/alertzhangr.log


echo "########################listener_log########################################" >> $log_name
echo "" >> $log_name
echo "" >> $log_name


##############11g###########################
#chk_grid_log /u01/app/oracle/diag/tnslsnr/zhangr/listener/alert/log.xml
##############11g###########################




##############10g###########################
chk_listener_log /u01/app/oracle/diag/tnslsnr/zhangr/listener/trace/listener.log
##############10g###########################

关于"oracle中如何获取两天内的告警日志"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 位置 指针 文件名 篇文章 日志 更多 不错 实用 内容 文章 知识 参考 帮助 有关 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡豆 互联网科技活动banner 今日互联网科技 科技伦理 互联网公司 互联网科技公司需要的职位 西藏七维空间互联网科技有限公司 顶级互联网科技成果有哪些 玉溪互联网科技怎么选 世界互联网领先科技成果获奖 元气玛特互联网科技公司是外包吗 南通创西澳互联网科技有限公司 从那以后互联网科技有限公司 半导体是互联网高科技吗 2021世界互联网领先科技成果发布 上海乐五互联网科技有限公司 普陀区互联网教育科技管理办法 中国科技和美国互联网 易租星互联网科技有限公司 中国互联网公司的科技投入 互联网科技大佬云集 小米移动互联网科技园 万易互联网科技 互联网科技咨询 互联网科技博主是什么意思 阿里巴巴算科技企业还是互联网 明优互联网科技有限公司 上海互联网科技公司ppt 盐城市攀科互联网科技有限公司 山东蛋芒互联网科技有限公司 北京瑞云互联网科技有限公司
0