>>基础命令

操作

命令

说明

查看文件的内容

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常用的日志分析命令与工具的更多相关文章

  1. linux下常用的日志分析命令

    linux下常用的日志分析命令   本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下.     形如下面这样的access.log日志内容: 211.123.23.133 ...

  2. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  3. linux下常用的日志分析命令【转】

    形如下面这样的access.log日志内容: 211.123.23.133 – - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district ...

  4. Linux性能查看与分析--命令行工具介绍

    本文介绍工作中常用的几个linux性能查看命令:top,sar,vmstat,iostat,pidstat等. 1.top top是最常用的linux性能分析工具,它能够实时的显示系统中各个进程的资源 ...

  5. linux系统web日志分析脚本

    linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...

  6. nginx常用运维日志分析命令

    nginx常用日志分析命令 运维人员必备 常用日志分析命令 1.总请求数 wc -l access.log |awk '{print $1}' 2.独立IP数 awk '{print $1}' acc ...

  7. 监控Linux性能的18个命令行工具

    监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...

  8. Linux文件系统与日志分析

    Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...

  9. Linux文件系统与日志分析的了解

    Linux文件系统与日志分析 1.inode和block概述 2.模拟inode耗尽实验 3.ext类型文件恢复 4.xfs类型文件恢复 5.日志文件 6.日志分析 1.文件:文件是存储在硬盘上的,硬 ...

随机推荐

  1. caffe学习系列(3):数据层介绍

    一个模型由多个层构成,如Data,conv,pool等.其中数据层是模型的最底层,是模型的入口. 提供数据的输入,也提供数据从Blobs转换成别的格式进行保存输出还包括数据的预处理(如减去 均值, 放 ...

  2. Android 创建内容提供器(ContentResolver)

    如果想实现跨程序共享数据的功能,官方推荐的方式就是使用内容提供器,可以通过新建一个类去继承 ContentResolver 的方式来创建一个自己的内容提供器. ContentProvider 类中有六 ...

  3. 编写Delphi控件属性Stored和Default的理解及应用

    property ButtonSize: Integer read FButtonSize write SetButtonSize default 0;    property Color: TCol ...

  4. 用消息机制解耦Activity跳转

    我见过的Activity方式有三种: 1, 默认的,在一个Activity里创建一个Intent,然后startActivity/startActivityForResult: 2, 给被跳转到的Ac ...

  5. dtw算法

                              dtw路径与线性变换路径对比 转自:http://baike.baidu.com/link?url=z4gFUEplOyqpgboea6My0mZP ...

  6. Python分割list

    对于一个很大的列表,例如有超过一万个元素的列表,假如需要对列表中的每一个元素都进行一个复杂且耗时的计算,用单线程处理起来会很慢,这时有必要利用多线程进行处理,处理之前首先需要对大的列表进行分割,分割成 ...

  7. Yii中的错误及异常处理

    Yii中的错误及异常处理 Yii已经默认已经在CApplication上实现了异常和错误的接管,这是通过php的set_exception_handler, set_error_handler实现的. ...

  8. POJ 3026(BFS+prim)

    http://poj.org/problem?id=3026 题意:任意两个字母可以连线,求把所有字母串联起来和最小. 很明显这就是一个最小生成树,不过这个题有毒.他的输入有问题.在输入m和N后面,可 ...

  9. Failed to issue method call: Unit httpd.service failed to load: No such file or directory.

    centos7修改httpd.service后运行systemctl restart httpd.service提示 Failed to issue method call: Unit httpd.s ...

  10. FFmpeg-20160418-snapshot-bin

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 F ...