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,$6}' access.log | head -10 |
|
按条件打印 |
awk 'length($0)>40{print $3}' access.log | head -10 |
|
格式化输出 |
awk '{line= sprintf("method:%s,response:%s", $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=='404'{print $6}' access.log | wc -l`
占比 expr $not_found_line \* 100 / $total_line &&或;可合并为一行。
(7)使用grep查找文件中指定字符出现的次数
grep -o '目标' test.txt | wc -l
-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。
Linux常用的日志分析命令与工具的更多相关文章
- linux下常用的日志分析命令
linux下常用的日志分析命令 本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下. 形如下面这样的access.log日志内容: 211.123.23.133 ...
- linux常用的日志分析脚本
linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...
- linux下常用的日志分析命令【转】
形如下面这样的access.log日志内容: 211.123.23.133 – - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district ...
- Linux性能查看与分析--命令行工具介绍
本文介绍工作中常用的几个linux性能查看命令:top,sar,vmstat,iostat,pidstat等. 1.top top是最常用的linux性能分析工具,它能够实时的显示系统中各个进程的资源 ...
- linux系统web日志分析脚本
linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...
- nginx常用运维日志分析命令
nginx常用日志分析命令 运维人员必备 常用日志分析命令 1.总请求数 wc -l access.log |awk '{print $1}' 2.独立IP数 awk '{print $1}' acc ...
- 监控Linux性能的18个命令行工具
监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...
- Linux文件系统与日志分析
Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...
- Linux文件系统与日志分析的了解
Linux文件系统与日志分析 1.inode和block概述 2.模拟inode耗尽实验 3.ext类型文件恢复 4.xfs类型文件恢复 5.日志文件 6.日志分析 1.文件:文件是存储在硬盘上的,硬 ...
随机推荐
- Xcode 8 打印输出: Class PLBuildVersion is implemented in both...
在xcode8中,屏蔽了一些奇怪的输出之后,又发现了一个.具体啥原因还不是太清楚.但是可以解决这个问题,让其停止打印这个信息. 在 info.plist 中,添加两个键值对: 针对photo: key ...
- 内网安全工具之hscan扫描
工具下载地址:hscan1.2.zip 界面简单,看配置: 这里我们主要需要配置的是模块和参数 模块,按照默认配置就行,取消 check HTTP vulnerability(漏洞检测) 会更快一点. ...
- __get().__set.__isset,__unset魔术方法
一般来说,总是把类的属性定义为 private .这更符合现实的逻辑. 但是对属性的读取和赋值操作非常频繁的,因此在PHP中,预定义了两魔术方法 "__get()"用来获取私有成员属性值的,只有一个参 ...
- dp题目列表
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- 应用HTK搭建语音拨号系统4: 识别器评估
选自:http://maotong.blog.hexun.com/6261890_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- ffmpeg解码音频流
//初始化.注册编解码器 avcodec_init(); av_register_all(); avformat_network_init(); //选取测试文件 char* FileName=&qu ...
- typedef使用大全(转)
typedef使用大全(转) 一.数组typedef到处都是,但是能够真正懂得typedef使用的不算太多.对于初学者而言,看别人的源码时对到处充斥的typedef往往不知所错,而参考书又很少,所以在 ...
- 【架构】Google的大规模集群管理工具Borg
参考资料: http://www.cnblogs.com/YaoDD/p/5374393.html http://www.cnblogs.com/YaoDD/p/5351589.html
- 一个简单的任务执行时间监视器 StopWatch
有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观, 如果想对执行的时间做进一步 ...
- C# 毕业证书打印《五》
对鼠标操作Label的方法 #region //定义一个枚举类型,描述光标状态 private enum EnumMousePointPosition { #region MouseSizeNone ...