linux系统下的日志分析方法

linux系统下使用awk 分析日志的常用方法

Posted by Start Bootstrap on April 21, 2017

查看test.log 以url分割的第二列然后筛选匹配http的行,去重

awk -Furl '{print $2}' test.log | grep http | uniq | wc -l

筛选出所有的url

cat test.log | grep 'url' | sed 's/.*http/http/g'

去重加上排序

cat log/test.log | grep 'url' | sed 's/.*http/http/g' | sort | uniq -c | sort

加上按倒序排序查看前12到500行

cat test.log | grep 'url' | sed 's/.*http/http/g' | sort | uniq -c | sort -nrk1 | sed -n 12,500p
command 1 | command 2     #他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2 
wc -l       #统计行数  
uniq -c     #在输出行前面加上每行在输入文件中出现的次数
uniq -u      #仅显示不重复的行
head -3      #取前三名  

awk内置变量

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符