成航先森 成航先森

成都航院计算机系一个学生的个人博客

 

系统运维

  • 没有分类目录

最新文章

系统运维
当前位置: 首页 » 系统运维 » 用Linux分析日志查看产生大量404的IP

用Linux分析日志查看产生大量404的IP

编辑:狂族晨曦 来源:系统运维经验杂笔 日期:2016-05-12 阅读: 4,698 次 11 条评论 » 百度已收录

最后更新时间:2022-04-02

先森网站被阿里云通知超标消耗资源的时候查看网站的日志,发现有几个IP一直在访问一个不存在的目录,产生了大量的404。查了半天没有查出这些IP与先森使用的CDN等服务有关,看来不是什么好货了,赶紧用.htaccess屏蔽IP

但是有个问题,日志文件是以行为记录,一行对应一个请求,一个日志经常成千上万行,光靠眼睛看不能准确的识别出这些做坏的IP到底有哪些。先森一直在找有没有能直接分析出来的日志分析工具,但搜到的都是针对搜索引擎蜘蛛痕迹做分析的,只得作罢。

近期先森在培训红帽Linux,经过学习,发觉Linux确实强大。而老师今天教了正则表达式,再加上以前教的各类命令,发现其实用Linux就能很好的做日志分析了。下面来分享下相关经验。

linux命令

首先,查看日志,分析需要筛选的内容。先森贴出其中404的一例:

60.191.139.121 - - [09/May/2016:00:33:32 +0800] "GET /_detect HTTP/1.0" 404 209 "-" "-" qxu123456789.my3w.com text/html "/usr/home/qxu123456789/htdocs/_detect" 1048

需要注意的是,每行的状态码前后是有一个空格的,这个可以用来区分正常访问中单纯的404数字。

命令方面其实很简单,一句搞定:

# cat web.log| grep -E ' 404 '|awk '{print $1}'|sort |uniq

先森的日志回车后,最终显示了下面三个IP:

222.73.199.105
60.191.139.121
61.160.245.190

这样就确认了有哪些IP在对网站造成404访问了,这时候用.htaccess将其屏蔽即可。如果不会,可以参考先森这篇文章:

下面对上面的代码做些解释。

cat是将web.log的内容作为标准输出到设备,也就是查看文件内容。

|是管道符,将左边的输出连接到右边的输入,也就是把日志内容传给下一条命令。

gerp -E,相当于egerp,后面跟的是正则表达式,这里我们查找的内容比较简单,所以暂时不用正则表达式。这条命令用来筛选出有404的行。

awk是做数据处理的,是一种编程语言,功能很强大。它可以用-F确定分隔符,默认是空格,这也真是我们需要的。以空格为分隔符,将每行分成了很多段,而后面的printf $1就是输出第一段,也就是我们的IP地址。

sort是排序,这里就是对我们的IP地址进行排序。

uniq是去重,也就是将重复的IP地址去除,留下我们想要屏蔽的IP地址。

一些延伸

上面仅仅是找出404访问IP,实际上我们可能有这种需求:找去所有的40X的访问IP,修改上面的一个字符即可实现:

# cat web.log| grep -E ' 40. '|awk '{print $1}'|sort |uniq

.点符号在Linux正则表达式中是占位符,表示任意的一个字符。

有了上面的这种需求,可能我们除了想看IP地址,还想知道它的状态码是多少,再修改一下就好:

# cat web.log| grep -E ' 40. '|awk '{print $1,$9}'|sort |uniq

上面在awk的输出增加了一个$9,表示已空格作为分隔的第九段。其实想看什么数据,只要以空格为界,数出其所在段位即可。但需要注意的是,时间段不要用来数出,这样会导致后面的去重没有什么效果,因为时间都是不同的。

Linux操作

Linux操作

最后

不得不说Linux确实强大,但是它的英文也让先森很吃不消啊。希望能够学好,向着运维的方向越走越远。

标签:
除特别注明外,本站所有文章均为成航先森 www.capjsj.cn 原创,本文共1557个字
转载请注明出处来自https://www.capjsj.cn/ylinuxfxrzckcsdl404dip.html
已有 11 位"计工"发布了激烈的评论,还有N多人围观笑而不语评论
的头像
欢迎发表评论
取消评论

表情
疑问调皮伤心抠鼻黑线微笑可爱奸笑震惊吓到了撇嘴大兵忍不住笑笑狂骂狂怒噢?鼓掌酷⊙﹏⊙b汗鄙视大哭嘿嘿

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 的头像

    :mrgreen: 太专业了,看不懂。

    2016-05-12 12:09 回复
  2. 的头像

    评论了。怎么不出来?而且表情貌似不显示。 :?:

    2016-05-12 12:10 回复
  3. 的头像

    这个方法太666了!!

    2016-05-12 21:55 回复
  4. 的头像

    不知道要屏蔽这些IP做什么呢?

    2016-05-13 00:03 回复
  5. 的头像

    linux好复杂的,还是win好

    2016-05-16 15:25 回复
  6. 的头像

    我也是用的阿里云。

    2016-05-16 17:34 回复
  7. 的头像

    Linux我就玩不来,只能看看

    2016-05-16 21:45 回复
  8. 的头像

    Linux用着还是没有winds方便。个人感觉。

    2016-05-21 10:14 回复
官方微信
发表评论 返回顶部