• 查日志常见技巧


    tail

    tail  -n  10  test.log   查询日志尾部最后10行的日志;

    tail -n +10 test.log    查询10行之后的所有日志;

    head

    head -n 10  test.log   查询日志文件中的头10行日志;

    head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    cat

    cat -n test.log | grep 'error' 查询日志中含有某个关键字的信息,显示出行号

    less

    命令格式:less [参数] 文件

    命令参数:

    -b <缓冲区大小> 设置缓冲区的大小

    -e  当文件显示结束后,自动离开

    -f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件

    -g  只标志最后搜索的关键词

    -i  忽略搜索时的大小写

    -m  显示类似more命令的百分比

    -N  显示每行的行号

    -o <文件名> 将less 输出的内容在指定文件中保存起来

    -Q  不使用警告音

    -s  显示连续空行为一行

    -S  行过长时间将超出部分舍弃

    -x <数字> 将“tab”键显示为规定的数字空格

    /字符串:向下搜索“字符串”的功能

    ?字符串:向上搜索“字符串”的功能

    n:重复前一个搜索(与 / 或 ? 有关)

    N:反向重复前一个搜索(与 / 或 ? 有关)

    b  向后翻一页

    d  向后翻半页

    h  显示帮助界面

    Q  退出less 命令

    u  向前滚动半页

    y  向前滚动一行

    空格键 滚动一行

    回车键 滚动一页

    [pagedown]: 向下翻动一页

    [pageup]:   向上翻动一页

    附加:

    1.全屏导航

    ctrl + F - 向前移动一屏

    ctrl + B - 向后移动一屏

    ctrl + D - 向前移动半屏

    ctrl + U - 向后移动半屏

    2.单行导航

    j - 向前移动一行

    k - 向后移动一行 

    3.其它导航

    G - 移动到最后一行

    g - 移动到第一行

    q / ZZ - 退出 less 命令

    4.其它有用的命令

    v - 使用配置的编辑器编辑当前文件

    h - 显示 less 的帮助文档

    &pattern - 仅显示匹配模式的行,而不是整个文件

    5.标记导航

    当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

    ma - 使用 a 标记文本的当前位置

    'a - 导航到标记 a 处

    6.查找

    more, less 都具备查找功能,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开

    场景

    场景1: 按行号查看---过滤出关键字附近的日志

    因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.

    我是这样做的,首先: cat -n test.log | grep "地形"  得到关键日志的行号

    如得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:

    cat -n test.log |tail -n +92|head -n 20

    tail -n +92表示查询92行之后的日志

    head -n 20 则表示在前面的查询结果里再查前20条记录

    场景2:查看指定时间段内的日志

    sed -n '/2017-02-23 10:00:00/,/2017-02-23 10:06:23/p' test.log 
    sed -n '/2017-02-23 10:00:/,/2017-02-23 10:06:/p' test.log

    这个需要注意的地方是10:00:00或者10:00必须出现过. 
    如果没有任何日志出现.请先查看是否存在

    grep "2017-02-23 10:00" test.log

    场景3:查看日志中特定字符的匹配数目

    grep "abcd" test.log | wc -l

    场景4:实时查看日志

    tail -f test.log

    场景5:查询最后20行,并查找关键字“结果”

    tail -n 20 test.log | grep '结果'

    场景6:查询最后20行,并查找关键字“结果”,文字标红

    tail -n 20 test.log | grep '结果' --color

    场景7:查询最后20行,并查找关键字“结果”,文字标红,上下扩展两行

    tail -n 20 test.log | grep '结果' --color -a2

    场景8:分页查看,使用空格翻页(使用more/less)

    cat -n test.log | grep "error" | more

    场景9:日志文件超大时,使用vim查找

    vim test.log 打开文件

    ctrl + g 移动至文件末尾

    :? com.fm.fdata 从最后往上查找关键字,点N往上

    场景10:浏览多个文件

    less test2.log test.log

    输出:

    1  ifconfig
        2  ping www.baidu.com
        3  ifconfig
        4  //10.128.161.108/share
        5  10.128.161.108/share
        6  ssh
        7  keygen
        8  trsa
        9  ssh
       10  .ssh/
    
    
     test2.log (file 1 of 2) (END) - Next: test.log
    

    输入 :n后,切换到 test.log

    输入 :p 后,切换到test2.log

    ps:当正在浏览一个文件时,也可以使用 :e命令 打开另一个文件。

    命令:

    less file1
    :e file2

    场景11 复杂查询截取排序

    less catalina.out | grep -B 3 "getRelatedTTSDomainPrefixs" | grep "QMQ消息处理异常,消息体" | awk -F "orderNo" '{print $2}' | awk -F "id" '{print $1}' | awk -F ":" '{print $2}' | awk -F "," '{print $1}' | awk -F "\"" '{print $2}' | awk -F "\\" '{print $1}' | sort | uniq -c | less

     

  • 相关阅读:
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第7节 内部类_7_内部类的概念与分类
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第6节 权限修饰符_6_四种权限修饰符
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_5_final关键字用于修饰成员变量
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_4_final关键字用于修饰局部变量
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_3_final关键字用于修饰成员方法
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_2_final关键字用于修饰类
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_1_final关键字概念与四种用法
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第4节 多态_24_笔记本USB接口案例_实现
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第4节 多态_23_笔记本USB接口案例_分析
    阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第4节 多态_22_用instanceof关键字进行
  • 原文地址:https://www.cnblogs.com/jlustone/p/7716124.html
Copyright © 2020-2023  润新知