Вам предоставлен access.log одного из серверов NASA (скачать).
Это текстовый файл, каждая строка которого имеет следующий формат:
$remote_addr - - [$local_time] “$request” $status $bytes_send
$remote_addr- источник запроса.$local_time- время запроса.$request- запрос.$status- статус ответ.$bytes_send- количество переданных в ответе байт. Например:198.112.92.15 - - [03/Jul/1995:10:50:02 -0400] "GET /shuttle/countdown/ HTTP/1.0" 200 3985
- Подготовить список запросов, которые закончились
5xxошибкой, с количеством неудачных запросов. - Найти временное окно (длительностью параметризуются), когда количество запросов на сервер было максимально.
- Для парсинга строк проще всего воспользоваться библиотеками.
stdio.hиstring.hстандартной библиотеки - Про коды ответа можно почитать например вот тут.
Программа поддерживает следующие опции:
--intervalMax [SECONDS]Ищёт время, когда за указанный интервал произошо больше всего ошибок. Если таких интервалов несколько, то программа выводит первый.--printErrors\t Выводит в консоль все строки с кодом ошибки5XX.--printOnly [CODE]\t Выводит в консоль все строки с определённым кодом ошибки5XX.--help/-hВыводит справку по программе. Так же программа умеет обрабатывать случаи, когда аргумент дан больше одного раза или неизвестен, а так же когда строка не закончена.