-vi 编辑器
先进入命令模式(Esc)
:/str 查找str,按n下一处,按N上一处
:1 回首行
:$到尾行

- web 访问日志统计(tomcat/apache/nginx)

1.根据访问IP统计UV
awk ‘{print $1}’ access.log.txt|sort | uniq -c |wc -l

2.统计访问URL统计PV
awk ‘{print $7}’ access.log.txt|wc -l

3.查询访问最频繁的URL
awk ‘{print $7}’ access.log.txt|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP
awk ‘{print $1}’ access.log.txt|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志
cat access.log.txt| sed -n ‘/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p’|more

还有比上面的日志分析更好的吗?当然,直接使用goaccess更强大:

- web日志分析工具 goaccess

先安装: yum install goaccess
GoAccess的基本语法如下:

goaccess [ -b ][ -s ][ -e IP_ADDRESS][ -a ] <-f log_file >

参数说明:

-f – 日志文件名
-b – 开启流量统计,如果希望加快分析速度不建议使用该参数
-s – 开启HTTP响应代码统计
-a – 开启用户代理统计
-e – 开启指定IP地址统计,默认禁用

用法示例:

最简单、常用的命令:
goaccess -f access.log

如果需要查看其他信息,加入如下参数以显示HTTP响应代码、用户代理、流量消耗
goaccess -f access.log -s -a -b

如果你觉得这样还不能满足你的需求。别急,goaccess支持linux管道(Pipe),我们可以将日志文件预处理后,再交给goaccess去分析。

zcat access.log.1.gz | goaccess

让goaccess去分析已经打包压缩好的日志文件。

或者干脆分析目前下所有日志

zcat access.log* | goaccess

如果需要分析某天的日志,例如10月5号那天的日志,我们让linux管道命令来大显身手^_^。

sed -n ‘/05/Dec/2010/,$ p’ access.log | goaccess -s -b

分析从11月5号到12月5号一个月内的日志

sed -n ‘/5/Nov/2010/,/5/Dec/2010/ p’ access.log | goaccess -s -b

当你不希望在服务器上安装goaccess程序,可以通过调用本地的goaccess程序来分析服务器上的日志(很神奇吧^_^):

ssh user@server ‘cat /var/log/apache2/access.log’ | goaccess -s -a -b

Logo

更多推荐