Показывает только журналы за последние 10 минут из файла журнала - PullRequest
0 голосов
/ 05 мая 2020

Файл журнала: -

LOCATION    CPIC (TCP/IP) on local host with Unicode
ERROR       Error Message
TIME        Mon May  4 11:37:17 2020
RELEASE     721
COMPONENT   CPIC (TCP/IP) with Unicode
VERSION     3
RC          473
LINE        9261
COUNTER     15

Changing trace level: handle 38331088 / destination (null) / level 0

Попытка выполнить приведенную ниже команду для автоматического получения журнала за последние 10 минут.

sed -n "/ $(date +\%R -d "-10 min")/,$"p logfile.log | grep "ERROR"

no output displayed
Expected Output : Error message in Last 10 mins.

Любое решение?

1 Ответ

0 голосов
/ 05 мая 2020

Проблема в этом случае состоит в том, что 10-минутный тест требует сравнения отметок времени. Использование сопоставления с образцом для точного времени 10 минут go может дать сбой, если не было ошибки в точные минуты.

В качестве альтернативы рассмотрите следующее решение на основе AWK. Он будет пропускать строки, пока не увидит строку, соответствующую следующему: * Первый токен - это ВРЕМЯ * День месяца, соответствующий сегодня * Время за последние 10 минут

awk -v DD=$(date +%-d -d '-10 min') -v WHEN="$(date +\%R -d '-10 min')" '
$1 == "TIME" && $4 == +DD && $5 >= WHEN { p=1 }
p { print }
' logfile

Решение можно улучшить, сделав его более универсальным. c. Текущая реализация не будет работать в течение первых 10 минут после полуночи. Это может быть решено (при необходимости) OP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...