超实用篇之服务器日志查询定位

使用场景

你想查看部署在一台服务器上的后台日志,日志文件名称为:application.log

tail -f application.log

想查看文件后100行或者两百行?

tail -100f application.log

突然后台开始跑大量的定时任务,各种日志疯狂刷屏,你根本找不到了你要的,于是你慌了,后来你一番百度:小样,还治不了你了

tail -f application.log |grep --color -10 order

# order 你想要指定查找的某个字符
# --color 给你要查找的这个字符在刷日志的时候上个色,方便你在茫茫字符中一眼看到这个与众不同的的它
# -10 只打印你要的这个字符出现在文件中的上下十行

tail -f a.log |grep -E --color ‘order|product’

(和上面差不多,但是这个有两个关键字order和product)

动态展示文件中出现的 order或者product字符 不区分大小写,并且高亮显示

tail

基本语法:tail [-f] [-其他可选项] [文件名]

-f:也是可选项,用于监视追加动态的文件,经常用于操作日志文件

tail -f a.log(默认值,动态读取最后10行);tail -500f a.log(动态读取最后500行数据) 

其他可选项:

-c 20 : 从文件的20个字节开始读取文件;如:tail -c 20 a.log

-m 20: 从文件的第20个字节开始读取文件,只是与 -c 不同的是不会截取字符串,更实用

-n 20:从文件的第20行开始读取,-20表示最后20行。 如:tail -n -20 a.log

-b 20:从文件的第20个 512字节块儿开始读取文件,如(读取最后20*512字节):tail -b -20 a.log

-k 20:从文件的第20个 1kb字节块儿开始读取文件,如(读取最后20kb):tail -k -20 a.log

–help:更多命令; tail --help

grep

根据规则或者正则表达式 每行进行过滤制定文件,经常与其他命令一起配合使用,ps命令、tail命令等

基本语法:grep [可选项] [-e] 规则 [file…]

-e: 也是可选项,使用正则表达式进行过滤;如:tail -f a.log | grep ‘kevin’

-i:查找不区分大小写;

-v:查找不包含指定内容的行;

-w:按照单词搜索;

-c:统计匹配到的次数;

-n:显示行号;

-r:逐层遍历查询;如:grep ‘error’ /home/log -r -n --include *.{log}

-A5:显示查询到的字符的前5行一起显示,这个在日志中也比较实用,在上下文中才更有意义, 如:tail -n 200 a.log | grep -A5 ‘error’

-B5: 显示查询到的字符的后5行一起显示;

-C3:显示查询到的字符以及前后3行;

–color:查询到的内容高亮显示;

–include:指定匹配的文件类型;

–exclude:排查指定的文件类型;

–help:更多命令语法

你可能感兴趣的:(Java进阶自学笔记,服务器,运维)