unix 命令在日志中搜索 5XX 状态 HTTP 请求的计数
unix command to search count of 5XX status HTTP requests in the log
我需要编写一个 unix 命令来搜索日志中 5XX 状态 HTTP 请求的计数。日志格式如下例:
192.168.0.101 - - [12/Dec/2019:23:15:56 +0900] "GET /index.html HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
有什么建议吗?
最小的解决方案是
$ grep "5\d{2}" somefile.log | wc -l
grep
会将输出过滤为仅包含字符串 5XX
的行,其中 X
是任何数字字符。然后将此输出通过管道传输到 wc -l
,它计算生成的行数。
但是,字符串 5XX
可能会出现在日志文件的其他位置。考虑到这一点,您不妨考虑在 grep
中使用更详细的模式,例如
$ grep "HTTP/1.1\"\ 5\d{2}" somefile.log | wc -l
这确保您只匹配 HTTP 错误代码,而不匹配,例如未来的 Gecko 版本。
我需要编写一个 unix 命令来搜索日志中 5XX 状态 HTTP 请求的计数。日志格式如下例:
192.168.0.101 - - [12/Dec/2019:23:15:56 +0900] "GET /index.html HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
有什么建议吗?
最小的解决方案是
$ grep "5\d{2}" somefile.log | wc -l
grep
会将输出过滤为仅包含字符串 5XX
的行,其中 X
是任何数字字符。然后将此输出通过管道传输到 wc -l
,它计算生成的行数。
但是,字符串 5XX
可能会出现在日志文件的其他位置。考虑到这一点,您不妨考虑在 grep
中使用更详细的模式,例如
$ grep "HTTP/1.1\"\ 5\d{2}" somefile.log | wc -l
这确保您只匹配 HTTP 错误代码,而不匹配,例如未来的 Gecko 版本。