Linux下使用grep命令分析网站日志

本文详细介绍了如何通过命令行工具处理网站日志文件,包括合并、拆分日志,使用正则表达式和awk命令进行数据筛选与格式化,以及计算不重复的URL个数和统计特定关键字出现次数。特别强调了如何提取百度蜘蛛访问的详细信息,为日志分析提供了一套实用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.gnbase.com/thread-2-1.html

1、合并网站日志

cat *.log >example.log #合并后缀名为log的日志文件,你也可以合并指定的日志

2.拆分我们想要的日志文件

grep "Baiduspider+" example.log >baiduspider.txt

grep "404" example.log >404.txt

还可以同时拆分百度和谷歌的蜘蛛。这里我们使用的是egrep来实现这一功能。

egrep "Baiduspider+|Googlebot" example.log >spider.txt

3、我们还可以结合awk命令来格式话我们的日志文件

awk倾向于分析一行中的字段,我们需要来看一下网站的日志格式,我们截取百度蜘蛛访问的来源IP、时间、抓取的URL、返回码和抓取的大小。

grep "Baiduspider+" example.log |awk '{print $1 "\t" $4 "\t" $7 "\t" $8 "\t" $9 "\t" $10}' >Baiduspider.txt

这里使用[tab]是为了导入excel文件中更加方便你的分析。更新:可以不用[tab]来格式化日志,直接选择空格作为分隔符就好。



如何使用命令删选不重复的URL的,由于很多日志的参数设置不一样,具体到详细命令命令会有所不同
首先我们还是要知道蜘蛛抓取你的URL位置在你的日志记录行的位置,拿上面的图为例子

如图,由于每条记录的时间戳等不一样,我们不能直接使用sort命令去重,再者我们需要的只是蜘蛛抓取的URL这个参数,那么我们就直接拎出$7这个URL参数后再去重。

如我们要计算蜘蛛抓取的不重复URL个数

cat access.log |grep Baiduspider+ |awk '{print $7}'|sort -u|wc

要把蜘蛛抓取的不重复URL导出来,就可以去掉wc后加上>baiduspiderurl.txt等就可以了

cat access.log |grep Baiduspider+ |awk '{print $7}'|sort -u  >baiduspiderurl.txt

我们还可以在导出的时候自动给每个URL加上抓取的次数

cat access.log |grep Baiduspider+ |awk '{print $7}'|sort |uniq -c  >baiduspiderurl.txt

统计消息个数:

grep -c "Receive Message " mt.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值