Как рассчитать количество уникальных кодов ответов в файле журнала сервера apache? - PullRequest
0 голосов
/ 13 апреля 2020

Я только что начал работу системного администратора. Мне дали файл журнала, который содержит некоторые коды ответов (на самом деле их слишком много). Мне нужно составить список используемых кодов, например, 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

1 Ответ

1 голос
/ 14 апреля 2020

С awk:

awk -F'|' '{ a[$6]++} END{ for (i in a) print i "\t" a[i] }' logfile | sort -n

Подсчитывает количество вхождений шестого поля и печатает код состояния и вхождения для каждого элемента массива. Затем выходные данные сортируются численно по коду состояния.

Используйте sort -nrk2, если хотите, чтобы выходные данные были отсортированы по вхождению в r в обратном порядке.

...