Linux 查看java日志文件命令技巧

109 阅读1分钟

1.查找ip出现的次数

注:此方法可以查很多有固定格式的文本内容的变量部分。

比如日志文件如下

2023-06-12_14:01:15.291 [http-nio-8203-exec-74] INFO  access-logger - {"appId":"a-a-a","domain":"a.a.cn","env":"test","expend":11,"fip":"11.0.123.2","url":"/test/login"}
2023-06-12_14:01:15.292 [http-nio-8203-exec-74] INFO  access-logger - {"appId":"a-a-a","domain":"a.a.cn","env":"test","expend":11,"fip":"11.0.123.3","url":"/test/login"}
2023-06-12_14:01:15.293 [http-nio-8203-exec-74] INFO  access-logger - {"appId":"a-a-a","domain":"a.a.cn","env":"test","expend":11,"fip":"11.0.123.2","url":"/test/login"}

使用命令

 cat 2023061214.log |grep -o '"fip":[^,]*'|awk -F '"' '{print $4}' |sort|uniq -c |sort -r |head -n 5

结果

      2 11.0.123.2
      1 11.0.123.3

命令讲解

这个命令是用来从一个日志文件中提取出出现频率最高的前5个 "fip" 字段的值。

具体地,它的执行步骤如下:

  1. cat 2023061214.log:将文件 "2023061214.log" 的内容输出到标准输出。
  2. grep -o '"fip":[^,]*':在输出中查找所有形如 "fip":"xxx" 的字符串,并将其输出到标准输出。
  3. awk -F '"' '{print $4}':使用双引号作为分隔符,将输出中的每一行分成多个字段,并输出第四个字段,即 "fip" 字段的值。
  4. sort:对输出进行排序。
  5. uniq -c:统计相同的行数,并输出每个行和它出现的次数。
  6. sort -r:按照出现次数从高到低排序。
  7. head -n 5:输出前五行。

综合起来,这个命令的作用是从日志文件中提取出所有的 "fip" 字段的值,并按照出现频率从高到低排序,最后输出前五个出现频率最高的值。

这个命令可以举一反三,搜索类似结构的数据

2.查看某个目录的文件大小

du -sh ./log/