利用grep命令查找字符串分析log文件的一次实践
需求场景:
我需要分析一个服务器访问日志,分析百度蜘蛛这个月对求索网页面的抓取情况。
分析问题:
我的一个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等异常状态码的信息,及时高效的发现问题并解决之。