在日常工作中避免不了经常查日志的情况,对于较小的日志文件可以直接下载打开,但是对于比较大的日志文件比如 .out 结尾的日志文件动辄几G,大的十几G,要想直接打开查找很明显不太可能,总结了下平时经常会用到的命令,以备遗忘。
1. 日志头部/尾部的内容输出
tail -n 100 catalina.out
查看日志最后100行
tail -n 2000 catalina.out > 3030-01-01-test.txt
将文件最后的两千行输出到名为 3030-01-01-test.txt 的文件内,若没有这个文件会新建,若这个文件有内容会覆盖。
tail -f catalina.out
实时输出catalina.out 的文件内容,不合适输出日志比较快的文件,ctrl+s暂停,ctrl+q继续,ctrl+c退出。
>以上命令将 tail(尾部) 换成 head(头部) 一样适用
补:
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 ‘2020-01-01 10:10:10‘ catalina.out
有的话,根据两个时间点获取日志,sed -n ‘/2020-01-01 10:10:10/,/2020-01-01 30:00:00/p‘ catalina.out
这样获取的是直接在shell中处理,可以将其输出到指定文件中, sed -n ‘/2020-01-01 10:10:10/,/2020-01-01 30:00:00/p‘ catalina.out > 2020-08-01-test.txt
下载查看 sz 2020-08-01-test.txt
>以上根据时间段查看日志的方法,同样适用于查看两个关键字之间的日志
3. 根据行号查看日志
同上,首先需要查看关键字的行数, cat -n catalina.out |grep ‘关键字‘ ,返回的是所有关键字对应的行数
查看关键字前后10行,比如关键字在第100行,cat -n catalina.out |tail -n +90|head -n 20