查看日志常用命令
1、tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]
常用参数:
- -f 循环读取
- -n<行数> 显示文件的尾部 n 行内容
实例:
- tail filename.log//查询日志filename.log的最后 10 行
- tail -f filename.log//跟踪日志filename.log 的增长情况
- tail -100f filename.log//实时监控100行日志
- tail -n 10 filename.log//查询日志尾部最后10行的日志
- tail -n +10 filename.log//查询10行之后的所有日志
PS:停止显示日志按下CTRL+C
2、head
head命令与tail命令用法相似,head命令用于查看文档的开始指定数量的字符块,默认显示文档的前 10 行,如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。
命令格式:
head [参数] [文件]
常用参数:
- -n<行数> 显示行数
实例:
- 显示filename.log前5行的内容
head -5 filename.log
head -n 5 filename.log
3、cat
cat 命令用于连接文件并打印到标准输出设备上。
命令格式:
cat [参数] [文件]
常用参数:
- -n 或 --number:由 1 开始对所有输出的行数编号。
- -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
- -E:在每行结束处显示 $。
实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
在每行结束处显示 $
cat -E textfile1
4、grep-待完善
最近用的比较多,后面抽空记录下常用命令参数
更多日志命令扩展:
应用场景一:按行号查看---过滤出关键字附近的日志
1)cat -n test.log |grep "debug" 得到关键日志的行号
2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字92行后和前20行的日志:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
应用场景二:根据日期查询日志
sed -n \'/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p\' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep \'2014-12-17 16:17:20\' test.log 来确定日志中是否有该 时间点
应用场景三:日志内容特别多,打印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n test.log |grep "debug" >debug.txt