Fork me on GitHub

查询服务器日志时的操作

 

 

查看log.log日志文件(实时滚动刷新)

tail -f log.log

通用的查日志方式 ,使用less进入日志文件
比如查看当前目录下的console.log文件
less console.log
# 查找某个关键字, 使用/或者?,其中/是从当前位置往下查找, ?是往上查找
比如 /book 往下查找book关键词,?book往上查找book关键字
用 n 向前查找, N 向后查找
用 b 往前翻页 , f 往后翻页
用 G 跳到文件结尾, g 跳到文件开头

有时候, 我们需要根据名称来查找相关的文件
比如查找名称以console开头的文件,可以使用如下的find命令

find . -name 'console*'

其中.表示从当前目录往下查找, 如果需要全局查找(从根目录开始查找),则使用

find / -name 'console*'

也可以用locate命令, locate命令比find -name 更快, 但是会有延迟更新

locate console

有时候我们需要在多个日志文件中查找某个关键字
可以使用find结合grep
# 从当前目录往下查找, 查找包含字符串 CONFIRM 的文件(文件类型为f表示只查找文件, 而不查找目录), 并打印
# -name 和 -type 参数可以同时使用
下面是从当前目录开始查找全部文件, 并搜索其中带有 CONFIRM 关键字的内容
find . -type f | xargs grep 'CONFIRM'

上面的命令会同时列出文件名和日志信息

如果只想定位文件名(只想知道某个关键字出现在哪个日志文件中), 可以结合 cut 命令

find . -type f -name 'console*' | xargs grep 'CONFIRM' | cut -f1 -d':'

cut 的 -d':' 表示以 : 为分隔符对字符串进行切割, -f1 表示保留切割得到的字符串数组的第一个

加上 uniq 命令对文件名进行去重

find . -type f -name 'console*' | xargs grep 'CONFIRM' | cut -f1 -d':' | uniq

加上 sort 命令对文件名进行排序
find . -type f -name 'console*' | xargs grep 'CONFIRM' | cut -f1 -d':' | uniq | sort

uniq后面还可以跟 -c 参数, 可以计数

如果符合条件的文件数太多, 则可以只列出前n行,比如只列出前10行

find . -type f -name 'console*' | xargs grep 'CONFIRM' | cut -f1 -d':' | uniq | head -n 10

find 默认是递归查找所有文件子目录, 若只希望往下查找一级目录, 可以通过maxdepth 参数来指定

find . -type f -name 'console*' -maxdepth 2

若希望查找不满足某条件, 则可以用not, 进行反向查找

find . -not -name 'console*'


如果要查的日志是压缩文件,需要把 grep 替换成 zgrep

grep 可以增加参数, 比如下面的命令,可以查找console.log文件中出现CONFIRM关键字的上下5行的信息

grep -C 5 'CONFIRM' console.log

统计次数可以使用
wc -l

设置命令别名可以用
alias ll='ls -l'

通常用如下命令即可快速查找包含某一字符串的日志文件(按照日志文件名称排序),假设日志文件放在当前目录的logs目录下
find ./logs/ -name console* | xargs grep '301' | cut -f1 -d ':' | uniq | sort

使用grep查找 大日志文件 中的某个关键字

查看关键字前后5行的内容 grep -C 5 NullPointerException start.log
查看关键字后面5行的内容 grep -A 5 NullPointerException start.log
查看关键字前面5行的内容 grep -B 5 NullPointerException start.log

统计某个关键词的出现次数
-o 表示只输出匹配部分

grep -o FullGC gc.log | wc -l

 

 

uniq命令可以用来去重,但只能对相邻的重复元素去重,所以一般将其与sort配套使用,先sort后uniq,比如
cat console.log | grep -o apiName.* | sort | uniq 统计出日志中调用的全部接口(去重)

 

reference :https://blog.csdn.net/vcj1009784814/article/details/107707801

posted @ 2023-01-04 17:28  走位,走位  阅读(107)  评论(0编辑  收藏  举报