Linux查找日记技巧

时间:2022-05-12 16:52:45
对于从事web开发的人员来说.服务器上的日志多如牛毛,如何快速从中找出所需信息非常重要,以下是我在工作中用到的查找日志的简单命令,希望能对大家有所帮助。

1、基础知识

tail  -n  10  test.log   查询日志尾部最后10行的日志;
tail -n +10 test.log    查询10行之后的所有日志;
head -n 10  test.log   查询日志文件中的头10行日志;
head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

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

因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
我是这样做的,首先: cat -n catalina.out |grep "5086493"  得到关键日志的行号
Linux查找日记技巧
得到"5086493"关键字所在的行号是1389535行. 此时如果我想查看这个关键字前20行和后20行的日志:

cat -n catalina.out |tail -n +1389515|head -n 40

Linux查找日记技巧

tail -n +1389515表示查询1389515行之后的日志
head -n 40 则表示在前面的查询结果里再查前40条记录

3、场景二: 按时间段查看---过滤出关键时间附近的日志

通常我们非常需要查找指定时间端的日志

sed -n '/2016-10-10 15:02:00/,/2016-10-10 15:04:00/p'  catalina.out
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.
Linux查找日记技巧

关于日期打印,可以先 grep '2016-10-10 15:02:00' catalina.out 来确定日志中是否有该时间点,以确保上一步可以拿到日志
这个根据时间段查询日志是非常有用的命令.

4、其它

如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:

(1)使用more和less命令, 如: cat -n catalina.out  |grep "5086493" |more     这样就分页打印了,通过点击空格键翻页

Linux查找日记技巧

(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:

cat -n catalina.out  |grep "5086493"  >5086493.txt

Linux查找日记技巧

5、补充:linux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行