首页 > 解决方案 > 如何列出响应时间大于 6000 毫秒的所有日志

问题描述

[pid: 28785|app: 0|req: 2291/4303] 192.168.115.161 () {38 vars in 1198 bytes} [Sun Aug 26 12:43:42 2018] GET /v1/posts/ => generated 62220 bytes in 1744 msecs (HTTP/1.1 200) 9 headers in 380 bytes (1 switches on core 3)

我正在使用“grep”来搜索日志。

grep '[6-9]{4,} msecs' /var/log/wsgi/wsgi.log

请帮我过滤所有响应时间大于 6 秒的日志。

谢谢

标签: linuxawkgrepuwsgi

解决方案


不要尝试使用正则表达式进行数字比较,请使用理解数字的工具,例如 awk。如果这不是您所需要的全部:

awk '$24>6000' file

例如:

$ cat file
[pid: 28785|app: 0|req: 2291/4303] 192.168.115.161 () {38 vars in 1198 bytes} [Sun Aug 26 12:43:42 2018] GET /v1/posts/ => generated 62220 bytes in 1744 msecs (HTTP/1.1 200) 9 headers in 380 bytes (1 switches on core 3)
[pid: 28785|app: 0|req: 2291/4303] 192.168.115.161 () {38 vars in 1198 bytes} [Sun Aug 26 12:43:42 2018] GET /v1/posts/ => generated 62220 bytes in 5744 msecs (HTTP/1.1 200) 9 headers in 380 bytes (1 switches on core 3)
[pid: 28785|app: 0|req: 2291/4303] 192.168.115.161 () {38 vars in 1198 bytes} [Sun Aug 26 12:43:42 2018] GET /v1/posts/ => generated 62220 bytes in 6744 msecs (HTTP/1.1 200) 9 headers in 380 bytes (1 switches on core 3)

$ awk '$24>6000' file
[pid: 28785|app: 0|req: 2291/4303] 192.168.115.161 () {38 vars in 1198 bytes} [Sun Aug 26 12:43:42 2018] GET /v1/posts/ => generated 62220 bytes in 6744 msecs (HTTP/1.1 200) 9 headers in 380 bytes (1 switches on core 3)

然后编辑您的问题,以提供一个简明、可测试的样本输入和预期输出的最小、完整和可验证的示例。


推荐阅读