# 二、查看日志命令

# 一、动态查看日志

# 1、动态查看

# nginx日志存放位置
/usr/local/nginx-1.16.1/logs/
tail -f 日志文件名

# 2、指定关键字

#指定关键字使用 grep 命令
# 动态的查看 nginx 日志,并过滤ip地址为172.16.201.78:8501的日志
# linux认为 单引号才是真正的字符串,双引号内部如果没有特殊的关键字也会认为这是一个字符串
tail -f 日志文件名称 | grep "关键字"

# 3、指定多个关键字

# 或者
# grep -E '关键字1|关键字2.....'
# 过滤ip地址=172.16.201.78:8501 或者 有Android关键字的
tail -f api-access.log | grep -E "172.16.201.78:8501|Android"
# 并且
tail -f 日志文件 | grep '条件' | grep '条件' ....

# 4、排除关键字

# grep -v '指定要排除的关键字'
# 过滤首页小红点的请求,排除Android手机的请求
tail -f api-access.log | grep 'v2/count' | grep -v 'Android'

# 5、正则表达式

# grep -E '正则'
tail -f catalina.out | grep -E '^2020.*? 19'

# 6、查看指定行数

# 查看文件最后的N行
tail -数字 日志文件
# 查看文件最后的N行,并且滚动查看
tail -数字f 日志文件

# 7、日志转存

#将帅选到的日志转存到另外的一个文件里
# 覆盖 > 日志文件
# 追加 >> 日志文件
>>>是将前面命令的输出结果转存到一个文件里

# 二、日志提取

# 1、关键字搜索

# 在日志文件内搜索"某个"关键字
grep '关键字' 日志文件 | grep '关键字' ...

# 2、统计关键字行数

grep '关键字' 日志文件 | wc -l
grep -c '关键字' 日志文件

# 3、打印上下文信息

# 数字: 指定关键字上下文行数
grep -C 数字 '关键字' 日志文件

# 4、指定上下文的行数

# 指定上文行数
-B 数字
# 执行下文行数
-A 数字
grep -B1 -A2 '2020-07-01 20:19:25.226' catalina.out

# 5、行分割提取

# awk 默认使用空格作为分隔符
# -F '分隔符' 指定分隔符

指定分隔符 :

tail -f catalina.out | awk -F 'OperationDetailAop' '{print $2}'

默认分隔符 :

# 以空格分隔
tail -f catalina.out | awk '{print $1" "$2" "$3" "$4" "$5" "$6" "$7}'

# 6、分页查看

# more
# 查看指定关键字,使用空格作为分隔符,查看日志,并分页
grep '2020-07-01 20' catalina.out | awk '{print $1" "$2" "$3" "$4" "$5" "$6}'
| more

# 7、打包

# zip -r zip文件名 原始文件名
zip -r 123.zip catalina.out
Last Updated: 12/15/2023, 8:18:50 AM