免费注册 查看新帖 |

Chinaunix

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

求一个shell脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-29 17:29 |只看该作者 |倒序浏览
怎么样 打印五分钟前的所有ip,谢谢

192.168.61.173 [29/Jun/2010:17:25:52 "GET 9
192.168.10.29 [29/Jun/2010:17:25:52 "-" 9
60.21.227.216 [29/Jun/2010:17:25:52 "GET 9
59.59.187.34 [29/Jun/2010:17:25:52 "GET 9
59.59.187.34 [29/Jun/2010:17:25:52 "GET 9
60.21.227.216 [29/Jun/2010:17:25:52 "GET 9
59.59.187.34 [29/Jun/2010:17:25:52 "GET 9
113.92.78.222 [29/Jun/2010:17:25:52 "GET 9
192.168.61.172 [29/Jun/2010:17:25:52 "GET 9
192.168.63.192 [29/Jun/2010:17:25:52 "GET 9

招聘 : 质量管理
论坛徽章:
0
2 [报告]
发表于 2010-06-29 17:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2010-06-29 17:41 |只看该作者
  1. $ cat phpa.txt | cut -f 1 -d"["
  2. 192.168.61.173
  3. 192.168.10.29
  4. 60.21.227.216
  5. 59.59.187.34
  6. 59.59.187.34
  7. 60.21.227.216
  8. 59.59.187.34
  9. 113.92.78.222
  10. 192.168.61.172
  11. 192.168.63.192
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-06-29 17:58 |只看该作者
  1. [oracle@s12071 ~]$ awk -f a.awk file
  2. 192.168.61.173
  3. 192.168.10.29
  4. 60.21.227.216
  5. 59.59.187.34
  6. 59.59.187.34
  7. 60.21.227.216
  8. 59.59.187.34
  9. 113.92.78.222
  10. 192.168.61.172
  11. 192.168.63.192
  12. [oracle@s12071 ~]$ cat a.awk
  13. BEGIN{
  14.           m["Jan"] = 01
  15.           m["Feb"] = 02
  16.           m["Mar"] = 03
  17.           m["Apr"] = 04
  18.           m["May"] = 05
  19.           m["Jun"] = 06
  20.           m["Jul"] = 07
  21.           m["Aug"] = 08
  22.           m["Sep"] = 09
  23.           m["Oct"] = 10
  24.           m["Nov"] = 11
  25.           m["Dec"] = 12
  26.           now=systime()
  27.           FS="[ |/|[|:]"
  28. }

  29. {
  30.         ftime=mktime($5" "m[$4]" "$3" "$6" "$7" "$8)
  31.         if(now-ftime > 5*60)
  32.           print $1
  33. }
  34. [oracle@s12071 ~]$
  35. [oracle@s12071 ~]$
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-06-29 17:59 |只看该作者
快下班没时间写了~我觉得应该得用到 date -d "5 min ago"然后在比较吧

论坛徽章:
0
6 [报告]
发表于 2010-06-29 17:59 |只看该作者
  1. #!/bin/bash

  2. echo "Enter the logfile: "
  3. read LOGFILE

  4. DATE_m=`date -d "5 min ago" | awk -F: '{print $2}'`  
  5. DATE_h=`date -d "5 min ago" | awk -F"[ :]+" '{print $4}'`

  6. while read i
  7. do
  8.         log_h=`echo $i | awk -F: '{ print $2 }'`
  9.         log_m=`echo $i | awk -F: '{ print $3 }'`
  10.         if [ "$DATE_h" = "$log_h" -a "$DATE_m" -lt "$log_m" ]
  11.         then
  12.                 echo $i | awk '{ print $1 }'
  13.         fi
  14. done < $LOGFILE
复制代码
写个很对不起观众的

论坛徽章:
0
7 [报告]
发表于 2010-06-29 18:06 |只看该作者
回复 5# iori809


    怎么你和我想的一样,感觉这样的写法,很搓啊 ...   等黑哥来

论坛徽章:
0
8 [报告]
发表于 2010-06-29 18:11 |只看该作者
哪位仁兄来说下,  关于  while read  在读取文本行的域分隔符问题,

如默认为空格 , 即 while read a b , 则将文本行以空格为分隔符分为两部份,

那么,我要使用 ":" 来作为分隔符,不知道如何写

论坛徽章:
0
9 [报告]
发表于 2010-06-29 18:27 |只看该作者
回复 8# BangBull


    try IFS=':'

论坛徽章:
0
10 [报告]
发表于 2010-06-29 18:36 |只看该作者
回复 9# lkk2003rty


    呵,可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP