shell分析http日志

http状态码
1字头----信息,服务器收到请求,需要请求者继续执行操作
2字头----成功,操作被成功接收并处理
3字头----重定向,需要进一步的操作以完成请求
4字头----客户端错误,请求包含语法错误或无法完成请求
5字头----服务器错误,服务器在处理请求的过程中发生了错误

应用日志分析脚本

cat /usr/local/nginx/logs/access.log | awk ‘{print $1}‘ | sort | uniq -c | sort -rn

sort
选项与参数:
-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思

uniq
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示唯一的行

提取状态码
cat /usr/local/nginx/logs/access.log | awk ‘{print $9}‘

提取想要的信息
cat /usr/local/nginx/logs/access.log | grep -ioE "HTTP\/1\.[1|0]\"[[:blank:]][0-9]{3}"

grep参数详解
-i  忽略大小写
-o  只输出文件中匹配到的部分
-E  进行精确的
特殊符号    代表意义
[:alnum:]    代表英文大小写字节及数字,亦即 0-9, A-Z, a-z
[:alpha:]    代表任何英文大小写字节,亦即 A-Z, a-z
[:blank:]    代表空白键与 [Tab] 按键两者
[:cntrl:]    代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:]    代表数字而已,亦即 0-9
[:graph:]    除了空白字节 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:]    代表小写字节,亦即 a-z
[:print:]    代表任何可以被列印出来的字节
[:punct:]    代表标点符号 (punctuation symbol),亦即:" ‘ ? ! ; : # $...
[:upper:]    代表大写字节,亦即 A-Z
[:space:]    任何会产生空白的字节,包括空白键, [Tab], CR 等等
[:xdigit:]    代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字节

时间: 2024-10-21 02:14:00

shell分析http日志的相关文章

用shell分析nginx日志百度网页蜘蛛列表页来访情况

#!/bin/bash #desc: this scripts for baidunews-spider #date:2014.02.25 #testd in CentOS 5.9 x86_64 #saved in /usr/local/bin/baidu-web.sh #written by [email protected] www.zjyxh.com dt=`date -d "yesterday" +%m%d` if [ $1x != x ] ;then   if [ -e $1

shell分析nginx日志

以下脚本都是基于上面日志格式的,如果你的日志格式不同需要调整awk后面的参数. 分析日志中的UserAgent cat access_20130704.log | awk -F "\"" '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20 上面的脚本将分析出日志文件中最多的20个UserAgent 分析日志中那些IP访问最多 cat access_20130704.log | awk '{print $1}' |

shell 分析 nginx 日志统计

1.统计ip访问量前10的 ip地址 cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 2.查看当天ip访问量统计 cat access.log  |grep "21/Apr/2016" |awk '{print $1}'|sort|uniq -c|sort -nr 3.查看访问前10的页面统计 cat access.log | grep "21/Apr/2016"

shell脚本分析apache日志状态码

一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480″CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480″ combined 二.重启apache服 service httpd restart ##################apahce日志

shell脚本分析nginx日志

第一版,比较粗糙,仅限于能用 正在写入的文件不能用tar进行压缩 --------压缩日志---------------------- 94 access.log 95 tar: access.log: file changed as we read it 96 #### 压缩日志失败 #### #!/bin/sh #分析nginx日志 DATE=`date '+%Y%m%d-%H%M'` ARCHIVE=/usr/log_bak/nginx_$DATE.tar.gz MESSAGE=/usr/

awk 分析web日志(页面执行时间)

shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询) 当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在做优化时候,经常用到的一段shell 脚本. 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery . 以下是我的:nginx 配制 log_format main '$remote_a

烂泥:利用awstats分析nginx日志

昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割nginx日志>这篇文章. 今天打算分析下nginx日志,要分析nginx日志,我们可以通过shell脚本和第三方软件awstats进行分析,在此我们选择的是通过第三方软件awstats进行分析. 要使用awstats分析nginx日志,我们要安装awstats,而在安装awstats之前,我们需要先来介绍下awstats是什么? 一.awstats是什么 awstats是一个免费非常简洁而且强大有个性的基于Pe

分析邮件日志从每秒处理3个结果到每秒处理55个结果过程(grep提速)

由于业务需要,对EDM发出的邮件日志进行分析处理,我要做的是预处理,把posfix杂乱无章的日志中找到我需要的数据. 我用javamail发的邮件,发送邮件时获取到是一个messageId,形如:[email protected] 但是直接通过这个messageid是不能拿到发送邮件的status的,因为日志中是这么记录的: May 16 17:34:53 c1202 postfix/cleanup[23641]: 00020127E4D: message-id=<2135546465.1035

sarg分析squid日志

1.SARG介绍 SARG的全称是:Squid Analysis Report GeneratorSARG非常好用的Squid日志分析工具,它输出html格式,可以详细列出了每一位用户访问internet的站点信息,时间占用信息,排名,连接次数,访问量,访问量等.软件的主页:http://sarg.sourceforge.net/sarg.php 目前最新的版本是sarg-2.3.1 ####要使用SARG必须有网页页面,所以先安装apache.yum -y install httpd* ,安装