美文网首页
吊打面试官的2个日志排查命令

吊打面试官的2个日志排查命令

作者: 丿灬尘埃 | 来源:发表于2022-08-08 09:59 被阅读0次

    近日面试某厂,因为一句精通linux命令,可谓是给我上了一课。
    上来就是一道场景题:说,一个日志文件系统,怎么排查出一条日志的上下文呢?
    我一听这还不简单直接写:grep 'xxx' app.log
    So easy~
    奈何我太年轻了,他说上下文。
    我一想这面试官有点东西啊。
    答案: grep -C 'xxx' app.log
    简单介绍下grep

    • -A: 除了显示符合范本样式的那一列之外,并显示该行之后的内容。[这不就是after的简称吗? 所以写-after不过分吧,其实另一种写法是--after-context]
    • -B: 除了显示符合样式的那一行之外,并显示该行之前的内容。[或 --before-context]
    • -C:除了显示符合样式的那一行之外,并显示该行之前后的内容。[说白了就是(A+B).equals(C)]
      结果面试官有来了,假如日志内容为:INFO ||a=123||_msg=error||method=GET||args=0001|| traceId=0a5ad26162cce6
      请使用命令提取出traceId,即提取出0a5ad26162cce6

    我一看这简单啊,我会
    grep traceId a.log | awk -F '|' '{print $11}'
    结果是:

    1660010111832.jpg

    这下尴尬了,不行我字符串切割吧
    grep traceId a.log | awk -F '|' '{print substr($11, 10)}'
    齐活!

    结果来了一句,那你统计下数量吧。
    我一听这不是我刚刚总结完的吗?
    上链接:https://www.jianshu.com/p/7c8d07a2435d

    其实上述的答案还是有一定问题的,一般这种问题有2个方面考察,第一命令,第二个是文件怎么打开,假如一个几十G的文件这么操作是存在风险的,所以假如遇到这类问题,先和面试官打好招呼,在文件不是很大的前提下命令是这样的。
    文件很大就分而治之呗。

    相关文章

      网友评论

          本文标题:吊打面试官的2个日志排查命令

          本文链接:https://www.haomeiwen.com/subject/jjvwwrtx.html