unix команда для поиска количества HTTP-запросов о состоянии 5XX в журнале - PullRequest
1 голос
/ 03 февраля 2020

Мне нужно написать команду unix для поиска количества HTTP-запросов о состоянии 5XX в журнале. Формат журнала как в примере ниже:

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" 

есть предложения?

1 Ответ

1 голос
/ 03 февраля 2020

Минимальное решение:

$ grep "5\d{2}" somefile.log | wc -l

grep отфильтрует вывод только по строкам, включая строку 5XX, где X - любой символ di git. Затем эти выходные данные передаются по каналу wc -l, который подсчитывает количество произведенных строк.

Однако, возможно, строка 5XX появится в другом месте файла журнала. Чтобы учесть это, вы можете sh рассмотреть возможность использования более подробного шаблона в grep, такого как

$ grep "HTTP/1.1\"\ 5\d{2}" somefile.log | wc -l

, который гарантирует, что вы сопоставляете только коды ошибок HTTP, а не, например, будущего Gecko версия.

...