需求场景:

我需要分析一个服务器访问日志,分析百度蜘蛛这个月对求索网页面的抓取情况。

分析问题:

我的一个access.log文件大小有35M,不可能直接通过打开查看。我需要过滤掉一些没有的信息,只保留蜘蛛访问的信息行。

实践过程:

命令工具:

grep -n 'xxx' file > new file
//grep参数解释:
//grep查找命令,-n表示行数,xxx表示某字符串, file 要查找的文件
// > new file 导入到一个新的文件

1.利用grep字符串查找命令,筛选出这个月的数据。

grep -n 'Aug' access.log > Aug.log

2.继续筛选,把有百度蜘蛛标记的行找出。

grep -n 'Baiduspider' Aug.log > Aug_baiduspider.log

以上两条命令的得到的Aug_baiduspider.log数据就是我要的百度蜘蛛在这个月对我的服务器访问的日志记录。

一个从35M的信息中,直接获取了几kb我们有用的信息,排除其他行的干扰,我觉得是非常漂亮的一次应用。

结果对比图:

access.log截图:

筛选的baiduspider访问截图

像这样的命令对分析日志是非常有帮助的,大家可以举一反三,拓展更多的应用,比如,分析日志异常,筛选404,503等异常状态码的信息,及时高效的发现问题并解决之。

利用grep命令查找字符串分析log文件的一次实践的更多相关文章

  1. 利用lsof命令查找已经删除的文件来释放磁盘空间

    测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使 ...

  2. 利用grep命令查找文件内容

    例如查找PHP源码某个函数的具体实现 grep -rn "PHP_FUNCTION(socket_accept)" ./ext

  3. Linux中利用grep命令如何检索文件内容详解

    前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...

  4. 如何使用Grep命令查找多个字符串

    如何使用Grep 命令查找多个字符串 大家好,我是良许! 今天向大家介绍一个非常有用的技巧,那就是使用 grep 命令查找多个字符串. 简单介绍一下,grep 命令可以理解为是一个功能强大的命令行工具 ...

  5. linux(centos8):用grep命令查找文件内容

    一,grep的用途: linux平台有最常用的三大文本处理工具:awk/sed/grep grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行. 需要注意的地方:grep只支 ...

  6. 使用grep命令查找文件中符合”.stg.“行

    某目录下有个test.txt,内容如下: www.stg.comwwstgcom 如果我这样去查找: $ grep '.stg.' test.txtwww.stg.comwwstgcom 发现第二个匹 ...

  7. Linux下grep命令查找带有tab(退格)的字符

    需要在日志文件统计删除的主帖,而日志文件是tab(退格)字符隔开的:假设日志文件名叫delete.log. 保存格式和保存的数据如下, 删除日期            帖子类型(11为主帖,12为回帖 ...

  8. LINUX 下grep命令查找

    当出现查找文件出现匹配到二进制文件时,大概是因为文件同时含有文本文件与二进制文件,需要加上 grep -a,就可以解决问题.

  9. 利用正则来查找字符串中第n个匹配字符索引

    1.string.IndexOf()方法可以获得第一个匹配项的索引 2.要获取第n个匹配项的索引:  方法1:利用IndexOf方法循环获取. 方法2:用正则来查找. System.Text.Regu ...

随机推荐

  1. Code Signal_练习题_commonCharacterCount

    Given two strings, find the number of common characters between them. Example For s1 = "aabcc&q ...

  2. flask-login的使用3

    # coding=utf-8 import flask app = flask.Flask(__name__) app.secret_key = 'super secret string' impor ...

  3. python__new__与__init__的区别

    __new__ __init__区别 1 class A(object): 2 def __init__(self,*args, **kwargs): 3 print "init A&quo ...

  4. php Closure::bind的参数说明

    publicstatic Closure Closure::bind ( Closure $closure , object$newthis [, mixed$newscope = 'static' ...

  5. RSA与ECC的比较

    第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的RSA算法和基于椭圆曲线上离散对数计算问题(ECDLP)的ECC算法.RSA算法的特点之一是数学原理简单 ...

  6. 切换Fragment时实现数据保持

    摘要 Fragment设计初衷是为了简化不同屏幕分辨率的开发难度,他将代表一个功能的UI及其相关数据看做一个模块,以便达到复用.可以将Fragment看作是一个可以嵌入布局中的activity,有自己 ...

  7. gitlab上如何添加二进制文件(设计文档)

    想将设计文档(原型设计图,UML设计图等)放到gitlab上,以供团队其他成员查看.将这些二进制文件跟源码一样纳入git管控显然是不合适的.经过一番摸索,找到了如何管理项目文档的方法. 根据Stack ...

  8. ORACLE数据库AWR工具学习

    AWR(Automatic Workload Repository)即工作负载信息库,主要用于收集数据库运行状态的资料库,通过AWR报告可以分析ORACLE数据库的性能,从而给出优化策略. 图一:此图 ...

  9. Oracle EBS 验证应收是否等于加税

    --To validate whether a transaction's REC is equal to its REV plus TAX or not --验证应收是否等于收入加税 SELECT ...

  10. 从MySQL向Greenplum集群中导入数据

    我们要从MySQL当中导出数据到Greenplum当中,按照以下步骤就可以 1:将MySQL当中的表导出外部文件 以schema_name.table_name为例 select product_id ...