暂无图片
ADRCI SHOW ALERT内容写入日志文件
我来答
分享
Thomas
2022-10-22
ADRCI SHOW ALERT内容写入日志文件

ORACLE 11G以上,可以利用ADRCI功能,需要存入指定时间段的ALERT信息到某LOG文件里。编一个test.sh脚本如下:

#!/bin/bash
dt=`date -d '-3 day' +%Y-%m-%d`
adrci<<EOF
set home diag/rdbms/zhancs/zhancs
show alert -term -p "MESSAGE_TEXT like '%ORA-%' and ORIGINATING_TIMESTAMP > '$dt'"
exit
EOF

如调用该脚本,就是 ./test.sh >>1.log, 将输出结果写入log文件。

现在问题是,如果查出来没有ORA-的记录,应该不写入任何内容到1.log。但事实上,也写了如下内容:

$ cat 1.log

adrci>
ADRCI: Release 12.1.0.2.0 - Production on Sat Oct 22 16:36:30 2022

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

ADR base = "/u01/app/oracle"
adrci> adrci>
ADR Home = /u01/app/oracle/diag/rdbms/zhancs/zhancs:
*************************************************************************

那么,如何避免写入这部分无用内容呢?


我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
农夫三拳

./test.sh | grep -vi adici | grep -v Copyright>>1.log

还有啥不想要的,多几次|grep -v xxx 过滤掉

暂无图片 评论
暂无图片 有用 1
暂无图片
2022-10-23
严少安
2022-10-23
👍‍
李宏达
2022-10-24
展开全部评论(1条)
李宏达

最后加个if判断如果有ORA就继续,没有ORA就删除1.log

暂无图片 评论
暂无图片 有用 0
李宏达
答主
2022-10-23
愤怒的蜗牛
2022-10-23
沐言倾心
2022-10-23
Thomas

1.log不能删除,能否有个replace动作,每次运行完,吧 1.log里以下内容替换为空:

adrci>
ADRCI: Release 12.1.0.2.0 - Production on Sat Oct 22 16:36:30 2022

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

ADR base = "/u01/app/oracle"
adrci> adrci>
ADR Home = /u01/app/oracle/diag/rdbms/zhancs/zhancs:
*************************************************************************

暂无图片 评论
暂无图片 有用 1
李宏达

1.彻底置空,也就是ls文件的大小为0,文件里面什么都没有

(1): > filename
     (2)true > filename
     (3)cat /dev/null > filename
     (4)> filename

2.置空文件,但是文件中有空行,ls文件的大小,显示还有大小

(1)echo “” > filename
    (2)echo > filename

暂无图片 评论
暂无图片 有用 1
2022-10-22
愤怒的蜗牛
2022-10-24
Thomas

 高手一出手,便知有没有。 赠 哇哈哈

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏