Linux高级命令
-vi 编辑器
进入命令模式(按 Esc 键)
使用命令 :/str 查找字符串 str,按 n 跳转到下一个匹配,按 N 返回上一个匹配
:1 可直接跳转到第一行
:$ 则可快速到达最后一行
– Web 访问日志统计(适用于 tomcat/apache/nginx)
1. 统计独立访问者(UV)
awk ‘{print $1}’ access.log.txt | sort | uniq -c | wc -l
2. 统计访问页面次数(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),允许我们在分析前对日志文件进行预处理。
示例:zcat access.log.1.gz | goaccess
使用 goaccess 分析已压缩的日志文件。
或者分析当前所有日志文件:
zcat access.log* | goaccess
若需分析特定日期的日志,例如 10 月 5 日,则可以使用管道命令:
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 [email protected] cat /var/log/apache2/access.log | goaccess -s -a -b
