用 awk 来处理 apache日志
来源:互联网 发布:淘宝采集系统 php源码 编辑:程序博客网 时间:2024/05/29 17:27
用 awk 来处理 apache日志
awk 简介:
awk于1970年诞生于贝尔实验室,是一门用于处理文本数据的程序语言,名称来自于3位作者名字的首字母(Alfred Aho, Peter Weinberger, and Brian Kernighan),gawk为GNU awk。
常量符:
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔符
通常 Apache 日志格式如下所示:
`127.0.0.1 - - [02/Sep/2009:17:12:03 +0800] "GET /index.php?a1=100&a2=good HTTP/1.1" 200`
假设文件 my-access_log 里面存在上面这条日志,我们使用如下的命令来分析这条日志:
#awk '{printf "%s/n%s/n%s/n%s/n%s/n%s/n%s/n%s/n%s/n",$1,$2,$3,$4,$5,$6,$7,$8,$9}' my-access_log
127.0.0.1
-
-
[02/Sep/2009:17:12:03
+0800]
"GET
/index.php?a1=100&a2=good
HTTP/1.1"
200
从结果中可以看到 awk 是用空白字符将一行文本分隔成若干个字段,127.0.0.1 即为第一个字段,状态码200为最后一个
示例:
1,计算a2=good的日志的条数
#awk '{$7 ~ /a2=good/}' my-access_log | wc -l
2,与运算,a2等good && 请求时间大于17:00:00
#awk '{if( ($7 ~/a2=good/) && $4>"[02/Sep/2009:17:00:00") print $1}' | wc -l
3,调用awk命令文件
#awk -f commond.awk
条件运算符和关系运算符跟C语言类似
与或非(&&,||,!)
大于,小于,等于,不等于(>,<,==,!=)
正则匹配符
匹配(~)
不匹配(!~)
未完待续,初级研究,仅供参考!
- 用 awk 来处理 apache日志
- awk 处理 nginx 日志
- awk处理nginx日志
- Hive 使用RegexSerDe来处理标准格式Apache Web日志
- Hive 使用RegexSerDe来处理标准格式Apache Web日志
- Hive 使用RegexSerDe来处理标准格式Apache Web日志
- 自己用PHP来分析Apache访问日志
- Awstats 处理多apache日志
- Apache日志处理相关汇总
- apache 日志文件 处理方法
- Spark简单处理Apache日志
- AWK简单统计apache/nginx日志IP数
- awk来调用linux命令解决个日志采集问题
- 使用apachetop来分析apache实时日志
- 用awk 处理这个/usr/local/apache/bin/httpd 只显示/usr/local/apache 这个式子如何。
- linux中awk进行日志文本的处理过滤
- awk处理之案例四:sort加awk来过滤文本
- [阮一峰]处理Apache日志的Bash脚本
- php的常量和变量
- 分页的bug
- 俩函数搞定asp的orm映射[原创]
- asp.net 简明安装手册
- SubSonic的配置及运用
- 用 awk 来处理 apache日志
- 手把手实现在linux上安装ruby
- MySQL与MsSQL 对日期时间操作的函数
- JavaScript调用用户控件中的子控件(此方法仅限于Inline的JavaScript)
- 怎样通过 IBM Rational Asset Analyzer 来分析分布式资源,第 1 部分---收集应用程序中的分布式资源的清单
- vmstat命令详解与举例
- 高手的经验 硬件
- top命令详解
- 在WEB-INF下实现jsp页面的跳转