免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: deargentle
打印 上一主题 下一主题

请教各位大牛:获取日志信息的关键字,logger发送给messages文件,谢谢. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-05-17 16:57 |只看该作者
本帖最后由 wtuter 于 2011-05-17 17:01 编辑

回复 1# deargentle


    #!/bin/bash

DATE=`date -d "2009-01-01 UTC  sec" "+%s"`

if  sed -n "/$DATE/,$/{/[ORA-|error|Error]/p}" /oracle/alert.log
then
logger -f /oracle/alert.log >> /var/log/messages
echo "$DATE" >>/oracle/alert.log
else
     echo "$DATE" >>/oracle/alert.log
fi

sleep 1800;



说明:最后的sleep 1800可以不用写,不写的话就把这个脚本放到crontab里,30分钟执行一次

论坛徽章:
0
12 [报告]
发表于 2011-05-17 17:02 |只看该作者
回复 8# deargentle

不重复是什么意思?
内容一样的报错永远只发一次,即使不是同一天的?

论坛徽章:
0
13 [报告]
发表于 2011-05-17 17:11 |只看该作者
本帖最后由 deargentle 于 2011-05-17 17:14 编辑

回复 11# ywlscpl

以时间为线索,如果下一个30分钟检查期间里有匹配的关键字继续记录,不管关键字是否重复,有几条写几条。

论坛徽章:
0
14 [报告]
发表于 2011-05-17 17:13 |只看该作者
回复 12# deargentle

本次检查的时候有两条一样的错误日志只发一条?

论坛徽章:
0
15 [报告]
发表于 2011-05-17 17:21 |只看该作者
按日志的增加
和日志的时间
2种
但是你oracle的日志 时间非标准格式而且 时间关键字是随着事件的出现 而出现
要么简单按日志的增加来就ok灵

论坛徽章:
0
16 [报告]
发表于 2011-05-17 17:22 |只看该作者
本帖最后由 deargentle 于 2011-05-17 17:28 编辑

时间可以忽略掉,主要是判断不重复写日志

如果log有新增的错误信息则再发送给messages,没有则不发送,曾经检查出的不要重复写。

下一个检查期间里只检查增加的日志里是否有匹配的关键字继续记录,不管关键字是否重复,有几条就写几条。

论坛徽章:
0
17 [报告]
发表于 2011-05-17 17:41 |只看该作者
本帖最后由 ywlscpl 于 2011-05-17 18:12 编辑

回复 15# deargentle


    match.sh
  1. #!/bin/bash
  2. tail -f /oracle/alert.log | awk '/ORA-/||/error/||/Error/' >>/var/log/mylog
复制代码
sendlog.sh
  1. #!/bin/bash
  2. cd /var/log
  3. mv -f mylog mylog.tmp
  4. awk 'NR==FNR{a[$0]}NR>FNR&&!($0 in a)' mylog.sended mylog.tmp >mylog.ready
  5. logger -f mylog.ready >>/var/log/messages
  6. cat mylog.ready >>mylog.sended
复制代码
match.sh 放后台运行
sendlog.sh在crotab中按自己需要时间间隔运行


PS:我很想把时间加到日志中去,没有时间的日志拿来分析是很痛苦的
match.sh
  1. #!/bin/bash
  2. tail -f /oracle/alert.log | awk '/^... ... .. ..:..:.. ..../{time=$0;delete a}/ORA-/||/error/||/Error/{if (!a[time]++) print time;print}' >>/var/log/mylog
复制代码

评分

参与人数 1可用积分 -1 收起 理由
nuclearxin -1 我很赞同

查看全部评分

论坛徽章:
0
18 [报告]
发表于 2011-05-17 17:44 |只看该作者
回复 16# nuclearxin

没有做重复检查的判断,每次执行都是重新开始,这样的话,日志就会有很多重复的。

论坛徽章:
0
19 [报告]
发表于 2011-05-17 17:47 |只看该作者
本帖最后由 nuclearxin 于 2011-05-17 17:48 编辑
回复  nuclearxin

没有做重复检查的判断,每次执行都是重新开始,这样的话,日志就会有很多重复的。
: ...
deargentle 发表于 2011-05-17 17:44



    。。。。。。。。
这个逻辑没有重复滴

论坛徽章:
0
20 [报告]
发表于 2011-05-17 17:51 |只看该作者
回复  nuclearxin

没有做重复检查的判断,每次执行都是重新开始,这样的话,日志就会有很多重复的。
: ...
deargentle 发表于 2011-05-17 17:44



    。。。。。。。
每次执行都是重新开始。。。
你怎么推测出来的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP