-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