使用 grep 过滤需要的日志
grep 命令几个常用的参数
参数 | 注释 | 用法 |
---|---|---|
–color | 匹配到的数据变红 | grep --color ‘要匹配的内容’ |
-A | 查看后几行数据 | 查看匹配的行的后十行:grep -A 10 ‘关键字’ |
-B | 查看前几行数据 | 用法和-A 一样 |
-i | 无视大小写 | grep -i ‘关键字’ |
-v | 反选,反向过滤文本行的搜索,不保留匹配到的数据的一整行 | grep -v ‘关键字’ |
使用 grep 搜索关键字
搜索日志中所有包含 appid 的内容
cat access_log.2022-02-08-14.log | grep 'appid'
或者
cat access_log.2022-02-08-14.log | grep --color 'appid'
或者
grep --color 'appid' access_log.2022-02-08-14.log
查看关键字后几行数据
grep -A 1 'GET /favicon.ico' 2022-02-08-14.log
无视大小写过滤
-i 等价于 -ignore-case:忽略字符大小写的差别
grep -i 'get' 2022-02-08-14.log
显示不包含关键字的其他的所有行
-v 等价于-invert-match:显示不包含匹配文本的所有行
当窗口输出很多日志,有很多不是我们想看到的,就可以用 grep -v 命令来过滤掉;
比如 过滤掉所有的 get 请求:
grep -v -i 'get' 2022-02-08-14.log
将过滤出来的日志追加到某个文件中
追加到新的文件中
举例,将过滤出来的GET /favicon.ico 请求追加到 名字为 ico.log 文件里,如果没有此文件,会默认创建;
grep 'GET /favicon.ico' access_log.2022-02-08-14.log >> ico.log
除了制定关键字以外的内容追加到指定文件中
将 GET /favicon.ico 请求除外的,其他的请求 覆盖到 ico.log 文件里;
grep -v 'GET /favicon.ico' access_log.2022-02-08-14.log > ico.log
然后查看一下里面内容
grep 'GET /favicon.ico' ico.log
里面是没有 GET /favicon.ico 请求