如何计算 apache 服务器日志文件中唯一响应代码的数量?
How to calculate number of unique response codes in an apache server log file?
我刚开始做系统管理员工作。我得到了一个包含一些响应代码的日志文件(实际上它们太多了)。我需要列出使用的代码,例如 400、200、304、404。然后,我需要显示每个响应代码重复了多少次。对于最后一个任务,我这样做了:
less file name | grep -c "404"
但我仍然需要列出这些响应代码。
这是日志文件的示例:
10.229.120.3|-|[12/Apr/2020:23:58:40 -0500]|/keepalive.html||200|10|1143|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:58:53 -0500]|/keepalive.html||200|10|2367|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:58:55 -0500]|/keepalive.html||200|10|1194|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:08 -0500]|/keepalive.html||200|10|2212|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:10 -0500]|/keepalive.html||200|10|1780|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:23 -0500]|/keepalive.html||200|10|1268|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:25 -0500]|/keepalive.html||200|10|1160|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:38 -0500]|/keepalive.html||200|10|1206|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:40 -0500]|/keepalive.html||200|10|1138|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:53 -0500]|/keepalive.html||200|10|1304|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:55 -0500]|/keepalive.html||200|10|2476|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
与awk
:
awk -F'|' '{ a[]++} END{ for (i in a) print i "\t" a[i] }' logfile | sort -n
这会计算第六个字段的出现次数,并打印每个数组元素的状态代码和出现次数。然后按状态代码对输出进行数字排序。
如果您希望输出按 r
逆序排列,请使用 sort -nrk2
。
我刚开始做系统管理员工作。我得到了一个包含一些响应代码的日志文件(实际上它们太多了)。我需要列出使用的代码,例如 400、200、304、404。然后,我需要显示每个响应代码重复了多少次。对于最后一个任务,我这样做了:
less file name | grep -c "404"
但我仍然需要列出这些响应代码。
这是日志文件的示例:
10.229.120.3|-|[12/Apr/2020:23:58:40 -0500]|/keepalive.html||200|10|1143|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:58:53 -0500]|/keepalive.html||200|10|2367|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:58:55 -0500]|/keepalive.html||200|10|1194|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:08 -0500]|/keepalive.html||200|10|2212|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:10 -0500]|/keepalive.html||200|10|1780|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:23 -0500]|/keepalive.html||200|10|1268|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:25 -0500]|/keepalive.html||200|10|1160|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:38 -0500]|/keepalive.html||200|10|1206|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:40 -0500]|/keepalive.html||200|10|1138|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.4|-|[12/Apr/2020:23:59:53 -0500]|/keepalive.html||200|10|1304|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
10.229.120.3|-|[12/Apr/2020:23:59:55 -0500]|/keepalive.html||200|10|2476|HTTP/1.1|GET|TLSv1.2|AES256-GCM-SHA384
与awk
:
awk -F'|' '{ a[]++} END{ for (i in a) print i "\t" a[i] }' logfile | sort -n
这会计算第六个字段的出现次数,并打印每个数组元素的状态代码和出现次数。然后按状态代码对输出进行数字排序。
如果您希望输出按 r
逆序排列,请使用 sort -nrk2
。