zoukankan      html  css  js  c++  java
  • 读书笔记-在线日志分析的常用命令

    摘自《大型分布式网站架构设计与实践》 4.1在线日志分析

    1.基础命令

    操作 命令 说明
    查看文件的内容 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

    2.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 边打印行边打印行号

    3.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

    4.实用例子

    操作 命令 说明
    查看请求访问量    
    访问量前10的IP cat access.log | cut -f1 -d " " | sort | uniq -c |sort -k 1 -n -r | head -10 cut部分表示取第1列即IP列,取第4列则为URL的访问量
    查看最耗时的页面 cat access.log | sort -k 2 -n -r | head -10 按第2列响应时间逆序排序
    统计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 &&或;可合并为一行。
  • 相关阅读:
    java操作生成jar包 和写入jar包
    jboss配置jndi连接池
    windows 域的LDAP查询相关举例
    LDAP error Code 及解决方法
    HDU 6417
    CF1299D Around the World
    codechef Chef and The Colored Grid
    Educational Codeforces Round 82 (Rated for Div. 2)
    CF1237F Balanced Domino Placements
    CF1254E Send Tree to Charlie
  • 原文地址:https://www.cnblogs.com/syjkfind/p/4455855.html
Copyright © 2011-2022 走看看