VPN技术 · 2023年11月10日 0

Linux进阶命令

Linux高级命令

-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 [email protected] cat /var/log/apache2/access.log | goaccess -s -a -b