Linux常用的日志分析命令与工具

简介: Linux常用的日志分析命令与工具

基础命令

操作

命令

说明

查看文件的内容

cat -n access.log

-n显示行号

分页显示文件

more access.log

Enter下一行,空格下一页,F下一屏,B上一屏

分页显示文件

less access.log

输入 /字符串 可查找并高亮

显示文件尾

tail -n2 -f access.log

-n2显示最后2行,-f继续监听不退出

内容排序

sort -k 2 -t ' ' -n access.log

-k指定排序列,-t指定列分隔符,-n按数字顺序

字符统计

wc -l access.log

-l统计行数,-c字符数,-L最长行长度,-w单词数

查看重复出现的行

sort testfile | uniq -c -d

uniq去重,-c统计重复次数,-d只显示重复的

字符串查找

grep 'G.*T' access.log

查找G开头T结尾的字符串

文件查找

find /home/java -name access.log

递归/home/java的子目录找名为access.log

表达式求值

expr 10 \* 3

计算10*3,其中\*表示转义*不解读为通配符

表达式求值

expr length "this is a test"

计算长度

归档文件

tar -cf aaa.tar f1 f2

-c创建,-f指定包名

归档文件

tar -xf aaa.tar

-x解压

URL访问

curl www.google.com

不带参返回响应体,-i返回带响应头,-I仅返回响应头

查看CPU的load

uptime

 

查看CPU使用率

top | grep Cpu

按1查看每个核,按shift+H按线程查看

查看CPU使用率

top -p 2864

查看指定进程

磁盘剩余空间

df -h

 

磁盘剩余空间

du -d 1 -h /home/java

分析目录的磁盘使用。-d设置递归深度

网络traffic

sar -n DEV 1 1

DEV查看各个网卡,1秒抽样,1总共取一次

磁盘I/O

iostat -d -k

 

内存使用

free -m

通常是看“-/+ buffers/cache”对应的used和free

内存使用

vmstat

查看swap I/O


sed编辑器

 

操作

命令

说明

文本替换

sed 's/xxx/yahoo/' access.log | head -10

不会修改原文件

输出指定的行

sed -n '2,6p' access.log

输出2-6行

删除行

sed '/qq/d' access.log

/d排除含关键字qq的行

整行替换

sed -e '/google/c\hello' access.log | head -10

/c替换的是整个匹配的行

多个命令合并

sed -n '1,5p;1,5=' access.log

边打印行边打印行号

 

awk程序

操作

命令

筛选行,打印指定列

awk '/google/{print 0,0,6}' access.log | head -10

按条件打印

awk 'length(0)>40{print0)>40{print3}' access.log | head -10

格式化输出

awk '{line= sprintf("method:%s,response:%s", 3,3,7); print line}' access.log | head -10

 


典型的日志分析场景

(1)统计一个文本中包含字符个数

cat access.log |grep /2012/ |wc -l
cat access.log |grep "/message/publishmsg/\|/message/publish/" >test1.log 

(2)查看当天访问排行前10的url
cat access.log | grep “10/Dec/2010″ | awk ‘{print $7}’ | sort | uniq -c | sort -nr | head -n 10

(3)查看apache的进程数
ps -aux | grep httpd | wc -l

(4)访问量前10的IP
cat access.log | cut -f1 -d " " | sort | uniq -c |sort -k 1 -n -r | head -10
cut部分表示取第1列即IP列,取第4列则为URL的访问量

(5)查看最耗时的页面
cat access.log | sort -k 2 -n -r | head -10
按第2列响应时间逆序排序

(6)统计404请求的占比
总请求数 export total_line= `wc -l access.log | cut -f1 -d " "`
404请求数 export not_found_line= `awk '6==404print$6access.log|wclexpr6==′404′print$6′access.log|wc−l‘占比exprnot_found_line \* 100 / $total_line &&或;可合并为一行。

 

 


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1天前
|
安全 Linux 测试技术
|
1天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
|
2天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南
|
2天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
2天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
14 0
|
2天前
|
安全 Linux Shell
linux基础命令详解
linux基础命令详解
8 0
|
3天前
|
Linux
Linux常用命令2
Linux常用命令2
5 0
|
3天前
|
Linux
Linux常用命令1
Linux常用命令1
9 0
|
3天前
|
人工智能 Linux Shell
linux命令-条件判断-test
linux命令-条件判断-test
8 1