# 二、查看日志命令
# 一、动态查看日志
# 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
← 一、Docker 三、Linux 目录 →