Временной интервал GREP

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

sarafan
Сообщения: 3

Временной интервал GREP

Сообщение sarafan »

В системе обнаружен баг. Он проявлялся 30.12.2019 с 21:30:00 до 21:39:59. Допустим надо найти ошибки 500 в этот промежуток.
Пример вывода 235.243.133.78 - - [30/12/2019:21:35:47 +0000] "PATCH /customers HTTP/1.1" 400 3264
Как написать команду?
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: Временной интервал GREP

Сообщение /dev/random »

grep работает не с датами, а с символами, и вам нужно искать последовательность символов, присутствующую во всех строках даты/времени в этом интервале, а затем искать ошибку 500 в найденном:

Shell

grep '30/12/2019:21:3' /path/to/log/file | grep '" 500 '
Номер часа (21) может потребоваться изменить, если часовой пояс, в котором указаны записи в логе, отличается от часового пояса, в котором вы указали временной интервал в своём сообщении.
Спасибо сказали:

sarafan
Сообщения: 3

Re: Временной интервал GREP

Сообщение sarafan »

/dev/random писал:
09.04.2020 22:08
grep работает не с датами, а с символами, и вам нужно искать последовательность символов, присутствующую во всех строках даты/времени в этом интервале, а затем искать ошибку 500 в найденном:

Shell

grep '30/12/2019:21:3' /path/to/log/file | grep '" 500 '
Номер часа (21) может потребоваться изменить, если часовой пояс, в котором указаны записи в логе, отличается от часового пояса, в котором вы указали временной интервал в своём сообщении.
Понял примерно. А как сделать в одном запросе, чтобы отобразились все записи в такой промежуток "Он проявлялся 30.12.2019 и 31.12.2019 с 21:30:00 до 21:39:59" и поместить эти записи в отдельный файл, например bug.txt
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: Временной интервал GREP

Сообщение /dev/random »

sarafan писал(а):
09.04.2020 22:27
А как сделать в одном запросе, чтобы отобразились все записи в такой промежуток "Он проявлялся 30.12.2019 и 31.12.2019 с 21:30:00 до 21:39:59" и поместить эти записи в отдельный файл, например bug.txt
Указываете, что второй символ может быть нулём, а может - единицей:

Shell

grep '3[01]/12/2019:21:3' /path/to/log/file > bug.txt
или если вам всё ещё нужно искать ошибку 500, но вы просто забыли об этом сказать:

Shell

grep '3[01]/12/2019:21:3' /path/to/log/file | grep '" 500 ' > bug.txt
Спасибо сказали:

cucumberRick
Сообщения: 1

Re: Временной интервал GREP

Сообщение cucumberRick »

Целиком задание звучит так, как написать команды?

В системе обнаружен баг. Он проявлялся 30.12.2019 и 31.12.2019 с 21:30:00 до 21:39:59. При этом появлялись ошибки с номерами 400 и 500. Твоя задача — сохранить в отдельный файл логи, которые были записаны в этот период.
Затем эти логи надо разложить по отдельным файлам: логи с одинаковой ошибкой положи в один файл. Как это сделать:
В домашней директории на удалённом сервере создай директорию bug1.
Все запросы, которые произошли в указанный период, положи в файл main.txt.
Внутри директории bug1 создай директорию events.
Внутри директории events создай файлы для ошибок с номерами 400 и 500. Назови эти файлы 400.txt и 500.txt соответственно. В них выдели логи с соответствующей ошибкой из файла main.txt.

В ответе приложи:
команды, которые создают директории bug1 и events;
команду, которой ты выбираешь запросы за указанный период. Это те запросы, которыми ты отбираешь логи в файл main.txt;
команды, которыми ты кладёшь логи в файлы 400.txt и 500.txt из main.txt;
тексты файлов 400.txt и 500.txt.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Временной интервал GREP

Сообщение Bizdelnick »

iУведомление от модератора Bizdelnick
Здесь не сайт готовых домашних заданий. Как решить задачу — уже было рассказано. Тема закрыта.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: