免费注册 查看新帖 |

Chinaunix

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

shell过滤日志记录【急救啊】---结贴了,作为经验大家看看吧 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-03-14 18:44 |只看该作者
xuke1668 发表于 2012-03-14 16:42
兄台,我没看懂你这是做了什么,请允许我再说一遍要求:把同一个端口在一分钟之内up又down,或者down又 ...

我的输出就是一分钟以内 down又up的端口,前面的time是时间,后面的port是对应的端口

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
12 [报告]
发表于 2012-03-14 18:45 |只看该作者
本帖最后由 rdcwayx 于 2012-03-14 18:51 编辑

这个对于新手,要求有些高了。
  1. awk '{time=$5 FS $6 FS $7; ("date -d \""time"\" +%s") | getline epoc;      # 获得epoc 时间
  2.       status=$(NF-2) FS $NF; down="down:" FS $NF;
  3.       a[status]=epoc;b[status]=$0;                                                                  # 将记录存到a (存epoc)  和 b (存整行数据) 关联数组
  4.       if (($(NF-2)~/up/)&&a[down]+0>0&&(a[status]-a[down]<=60))                   # 按楼主要求做判断 ,如果符合,就输出,你可以按照你自己的要求改改后面的输出部分
  5.           {print "* Found network issue on port", $NF
  6.            print b[down]
  7.            print b[status];
  8.            delete a[status];delete b[status];delete a[down];delete b[down]               # 清空相应的数组参数。
  9.           }
  10.      }' infile

  11. 。。。。
  12. * Found network issue on port 4/6
  13. Feb 27 14:01:04 10.13.1.2  Feb 27 14:04:18.860 GMT: %RPM0-P:CP %IFMGR-5-OSTATE_DN: Changed interface state to down: Gi 4/6
  14. Feb 27 14:01:07 10.13.1.2  Feb 27 14:04:21.446 GMT: %RPM0-P:CP %IFMGR-5-OSTATE_UP: Changed interface state to up: Gi 4/6
  15. * Found network issue on port 4/6
  16. Feb 27 14:02:25 10.13.1.2  Feb 27 14:05:39.647 GMT: %RPM0-P:CP %IFMGR-5-OSTATE_DN: Changed interface state to down: Gi 4/6
  17. Feb 27 14:02:28 10.13.1.2  Feb 27 14:05:42.363 GMT: %RPM0-P:CP %IFMGR-5-OSTATE_UP: Changed interface state to up: Gi 4/6
  18. 。。。。
复制代码

论坛徽章:
0
13 [报告]
发表于 2012-03-14 21:18 |只看该作者
本帖最后由 jiejie455 于 2012-03-14 21:19 编辑

  1. #!/usr/bin/awk -f

  2. {
  3.         ("date -d \""$5" "$6" "$7"\" +%s")|getline stamp;
  4.         status[stamp]=$(NF-2);
  5.         interface[stamp]=$NF;
  6.         time[stamp]=$5" "$6" "$7;
  7. }
  8. END{
  9.         len=asorti(status,idx);
  10.         for(i=1;i<=len;i++){
  11.                 if(status[idx[i]]=="down:"){
  12.                         for(j=1;j<=60;j++){
  13.                                 t=idx[i]+j;
  14.                                 if(status[t]=="up:" && interface[t]==interface[idx[i]]){
  15.                                         print interface[idx[i]]"\t"time[idx[i]]"  "status[idx[i]]"---->"time[t]"  "status[t];
  16.                                         break;
  17.                                 }
  18.                         }
  19.                 }
  20.         }
  21. }
  22. ~
复制代码

  1. 4/3     Feb 27 14:18:48.857  down:---->Feb 27 14:18:51.333  up:
  2. 4/3     Feb 27 14:18:54.716  down:---->Feb 27 14:18:57.204  up:
  3. 4/4     Feb 27 14:22:28.294  down:---->Feb 27 14:22:30.888  up:
  4. 6/28    Feb 27 14:23:09.518  down:---->Feb 27 14:23:12.82  up:
  5. 6/28    Feb 27 14:25:07.798  down:---->Feb 27 14:25:10.379  up:
  6. 4/3     Feb 27 14:25:59.899  down:---->Feb 27 14:26:02.490  up:
  7. 6/28    Feb 27 14:26:38.221  down:---->Feb 27 14:26:41.32  up:
  8. 6/26    Feb 27 14:26:55.948  down:---->Feb 27 14:26:57.725  up:
  9. 6/29    Feb 27 14:26:59.701  down:---->Feb 27 14:27:01.860  up:
  10. 6/28    Feb 27 14:27:15.158  down:---->Feb 27 14:27:17.748  up:
  11. 6/28    Feb 27 14:27:26.61  down:---->Feb 27 14:27:28.796  up:
复制代码
试一试,不知道对不对。

论坛徽章:
0
14 [报告]
发表于 2012-03-14 21:19 |只看该作者
怎样用shell找出一分钟之内同一个端口down然后又up了的记录!同一个端口!一分钟以内!down然后又up(网络小波动)!

请允许我再说一遍要求:把同一个端口在一分钟之内up又down,或者down又up(就是波动小的记录)的记录过滤掉,然后留下的输出

论坛徽章:
0
15 [报告]
发表于 2012-03-15 13:29 |只看该作者
本帖最后由 xuke1668 于 2012-03-15 14:14 编辑
rdcwayx 发表于 2012-03-14 18:45
这个对于新手,要求有些高了。


哈哈哈  多谢多谢啊
真的OK啦,完全是我想要的那种结果,佩服啦

论坛徽章:
0
16 [报告]
发表于 2012-03-15 14:15 |只看该作者
jiejie455 发表于 2012-03-14 21:18
试一试,不知道对不对。


多谢帮忙啦,结贴了,用的是你楼上那位的,感谢参与!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP