免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2712 | 回复: 3
打印 上一主题 下一主题

匹配时间范围 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-01 18:04 |只看该作者 |倒序浏览
本帖最后由 rushm 于 2012-03-01 18:10 编辑

我想匹配日志过去5分钟的内容出来

日志格式:
  1. 2012-02-29 12:16:45,372 [INFO] - (                  CM.java:  63) - Main Thread, Init clientSocketArray length=3200
  2. 2012-02-29 12:16:45,387 [INFO] - (                  CM.java: 146) - Accept Thread, setRunning to: true
  3. 2012-02-29 12:16:45,389 [INFO] - (                  CM.java: 208) - Working Thread[0] START
  4. 2012-02-29 12:16:45,389 [INFO] - (                  CM.java: 208) - Working Thread[3] START
  5. 2012-02-29 12:16:45,389 [INFO] - (                  CM.java: 208) - Working Thread[2] START
  6. 2012-02-29 12:16:45,389 [INFO] - (                  CM.java: 208) - Working Thread[1] START
  7. 2012-02-29 12:16:45,391 [INFO] - (                  CM.java: 208) - Working Thread[15] START
  8. 2012-02-29 12:16:45,391 [INFO] - (                  CM.java: 208) - Working Thread[14] START
  9. 2012-02-29 12:16:45,391 [INFO] - (                  CM.java: 208) - Working Thread[13] START
  10. 2012-02-29 12:16:45,391 [INFO] - (                  CM.java: 208) - Working Thread[12] START
复制代码
  1. 直接匹配的可以,可是放到脚本采用变量就不行,不知道是哪里需要转换
  2. $ awk -F,   '($1 >"2012-03-01 18:04:32" ) && ($1 < "2012-03-01 18:05:32" ) {print $0}' /data/cm/logs/cm.log  
  3. 2012-03-01 18:04:37,352 [DEBUG] - (                  CM.java: 178) - Check running status
  4. 2012-03-01 18:04:42,357 [DEBUG] - (                  CM.java: 178) - Check running status
  5. 2012-03-01 18:04:47,363 [DEBUG] - (                  CM.java: 178) - Check running status
  6. 2012-03-01 18:04:52,368 [DEBUG] - (                  CM.java: 178) - Check running status
  7. 2012-03-01 18:04:57,374 [DEBUG] - (                  CM.java: 178) - Check running status
  8. 2012-03-01 18:05:02,379 [DEBUG] - (                  CM.java: 178) - Check running status
  9. 2012-03-01 18:05:07,385 [DEBUG] - (                  CM.java: 178) - Check running status
  10. 2012-03-01 18:05:12,390 [DEBUG] - (                  CM.java: 178) - Check running status
  11. 2012-03-01 18:05:17,396 [DEBUG] - (                  CM.java: 178) - Check running status
  12. 2012-03-01 18:05:22,401 [DEBUG] - (                  CM.java: 178) - Check running status
  13. 2012-03-01 18:05:27,407 [DEBUG] - (                  CM.java: 178) - Check running status
复制代码
  1. cat select_err.sh  
  2. #!/bin/bash
  3. NOW_TIME=`date +"%Y-%m-%d %H:%M:%S"`
  4. echo $NOW_TIME
  5. DAY=`date +"%Y-%m-%d"`
  6. SYSTEM_NOW_TIME=`date -d  "$NOW_TIME" +%s`
  7. SYSTEM_FIVE_M_AGO=`expr $SYSTEM_NOW_TIME - 300`
  8. FIVE_M_AGO=`date -d @"$SYSTEM_FIVE_M_AGO" +"%Y-%m-%d %H:%M:%S"`
  9. echo $FIVE_M_AGO

  10. cd /data/cm/logs
  11. awk -F,   '($1 > '"$FIVE_M_AGO"' ) && ($1 < '"$NOW_TIME"' ) {print $0}' cm.log

复制代码
哪位gg帮我看看,thanks~~

论坛徽章:
0
2 [报告]
发表于 2012-03-01 18:14 |只看该作者
  1. $ cat select_err.sh
  2. #!/bin/bash
  3. NOW_TIME=`date +"%Y-%m-%d %H:%M:%S"`
  4. echo $NOW_TIME
  5. DAY=`date +"%Y-%m-%d"`
  6. SYSTEM_NOW_TIME=`date -d  "$NOW_TIME" +%s`
  7. SYSTEM_FIVE_M_AGO=`expr $SYSTEM_NOW_TIME - 120`
  8. FIVE_M_AGO=`date -d @"$SYSTEM_FIVE_M_AGO" +"%Y-%m-%d %H:%M:%S"`
  9. echo $FIVE_M_AGO

  10. cd /data/cm/logs
  11. awk -F,   '($1 > "'"$FIVE_M_AGO"'" ) && ($1 < "'"$NOW_TIME"'" ) {print $0}' cm.log
复制代码
加个冒号,已经解决~~~

论坛徽章:
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
3 [报告]
发表于 2012-03-01 18:16 |只看该作者
没验证过, awk 里应用外部变量,用 -v 最方便。还有,如果date 支持 -d, 可以直接输出5分钟前的时间。
  1. #!/bin/bash
  2. NOW_TIME=`date +"%Y-%m-%d %H:%M:%S"`
  3. FIVE_M_AGO=`date -d "5 minutes ago" +"%Y-%m-%d %H:%M:%S"`

  4. cd /data/cm/logs
  5. awk -F,  -v t1=$FIVE_M_AGO -v t2=NOW_TIME  '$1 > $t1  && $1 < $t2' cm.log
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-03-01 18:30 |只看该作者
回复 3# rdcwayx


    简单扼要,厉害~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP