• 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/chello' 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显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。

     

  • 相关阅读:
    WIN32窗口框架代码,完善了菜单和子窗口,纯API,可自由扩展,C语言也可以写桌面程序
    自制WINDOWS窗口框架(修改完善后实现了输入和显示功能),C+WIN-API,再也不用面对黑框框学C语言了
    定义一个判断素数的函数
    定义一元二次方程求根函数
    定义一个二维数组反置函数
    让C语言告别简陋的黑框框,WIN32窗口显示九九乘法表(纯C代码)
    C语言练习题40——将一个数组逆序输出
    c语言练习39——向数列中插入一个数
    c语言练习38——求3*3矩阵对角线之和
    js之好看的鼠标点击-光标特效
  • 原文地址:https://www.cnblogs.com/binyue/p/3608061.html
Copyright © 2020-2023  润新知