shell脚本如何分析网站日志?实例教程

发布时间:2021-01-06编辑:脚本学堂
本文介绍了shell脚本实现网站日志分析的方法与步骤,linux shell脚本用于分析网站日志文件很方便,需要的朋友参考下。

本节内容:
shell/ target=_blank class=infotextkey>shell脚本分析网站日志

linux系统中,使用shell分析网站日志,需要对包括cd命令ls命令cat命令grep命令linux命令非常熟悉,下面为大家介绍下。

一、cd命令:用于确定日志文件所在的文件夹。
如日志在d盘:
cd d: 或 cd /cygdrive/d/
如日志在d盘weblog文件夹,那使用命令:
cd /cygdrive/d/weblog/
返回上级目录:
cd ..
返回底层目录:
cd ~
注:cygwin的默认文件夹是cygwin安装文件中home/administrator文件夹,可以通过命令来修改默认文件夹,具体命令请百度搜索下。

二、ls命令:显示目前文件夹中所有文件
比如当前路径是在/d/weblog/
ls -a, –all /d/weblog
就可以显示出/d/weblog/中所有文件。

推荐阅读:linux命令大全

三、cat命令:连接文件
当几个日志需要连接融合时,需要用到cat命令,cat的全称是concatenate,为连接之意,如我想看4月份的日志情况,需要用到ex120401.log, ex120402.log, ex120403.log…等日志文件,可以使用下列命令:
cat ex12*.log > april.log
那么4月的所有日志文件就会合为april这一个文件了。
注:
1、ex12*.log中的*号为通配符,可代表所有字母或数字。
2、cat ex12*.log> april.log后面的“> april.log”代表把日志文件导出为一个名为april.log的文件,如果没有“april.log”,那所有的数据只会在编辑器中出现,并不导出。

四、grep命令:提取文件中的部分数据
grep A B.log >C.log
其中A是要在文件中提取的数据,比如要提取百度蜘蛛数据,那这里就是Baiduspider;B.log指的是要提取的目标文件,比如上面的april.log;C.log是提取出的数据要导出的文件,比如要把数据导出为baidu.log,那这里就应该为baidu.log。下面是一个例子,要提取april.log文件中百度蜘蛛数据,并导出为aprilbaidu.log,命令为:
grep Baiduspider april.log >aprilbaidu.log       
注:
1、grep的提取是找到相应的数据,并把整行数据都提取出来。
2、大小写不能搞错。
补充:
grep -v:排除命令
grep -v排除不需要的数据,跟grep用法正好相反。

五、awk命令:分割相应的列数据
2012-04-29 00:03:03 GET /ask/m140.html - 80 - 220.181.108.100 HTTP/1.1 Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html) - - www.jb200.com 200 0 0 5149 327 15
以上是百度蜘蛛抓取小站的日志情况,根据中间的空格可以分为19列(根据日志设置各有不同),awk可以单独提取出其中的某一列,比如要单独提取出其中的时间和URL:
awk ‘{print $2,$4}’ aprilbaidu.log > url.log
其中的$2,$4是所对应的列数,aprilbaidu.log是要分割的文件,url.log是相应数据的导出文件。

六、sort命令:排序
这个就是简单的排序,如果本来是按照原来的顺序,“1,2,9,5,1,2,6,4”,那么使用sort之后将是“1,1,2,2,4,5,6,9”。
另外,sort –nr 按照降序排列。

七、uniq命令:对数据进行汇总
这个只用uniq –c,表示周围数据排序整理,比如经过sort排序后是这样的
1
2
3
4
5
6
7
/ask1/
  
/ask1/
   
/ask1/
   
/ask2/
那么使用uniq –c后会变为这种:
1
2
3
3 /ask1/
  
1 /ask2/
注:由于uniq –c只能对周围数据排序整理,所以需要先对数据sort排序处理。

八、|符号的使用
|符号表示把后面的命令用在前面的文件上,比如
 

cat ex*.log |grep Baiduspider >baidu.log

标题将所有ex开头的log文件融合,然后提取出其中包含Baiduspider的部分。

九、常用shell命令汇总
1、把百度蜘蛛数据提取出来
 

grep Baiduspider ex*.log >baidu.log

2、调取不重复抓取URL数据,并按照降序排列
 

awk ‘{print $7}’ baidu.log |sort|uniq –c|sort –nr>zhuaqu.log

3、调取爬虫IP,并按照降序排列
 

awk ‘{print $11}’ baidu.log |sort|uniq –c|sort –nr>zhuaqu.log

4、调取返回码,并按照降序排列
 

awk ‘{print $17}’ baidu.log |sort|uniq –c|sort –nr>zhuaqu.log

您可能感兴趣的文章: