Назад | Перейти на главную страницу

Как посмотреть только последние 10 минут журнала и оператора grep for

Я ищу способ просмотреть только последние 10 минут файла журнала WebLogic с таким форматированием строк.

####<Sep 21, 2018 1:56:20 PM EDT> <Notice> <Stdout>

Я хочу найти определенную строку с помощью grep, и если это не удается, подождите 60 секунд и повторите попытку. Это будет для RHEL 7, и я открыт для использования sed, awk и т. Д.

Поскольку вы используете RHEL 7 WebLogic вероятно, сейчас использует systemd. Это означает, что вы можете воспользоваться journalctl и --since вариант.

Из этой статьи https://www.qualogy.com/techblog/oracle/introduction-weblogic-to-systemd# похоже, вы будете использовать либо wls_nodemanager или wls_adminserver или оба. Для просмотра обоих используйте:

journalctl -u wls_nodemanager -u wls_adminserver --since "10min ago"

Если бы вы ослабили требования последних 10 минут и использовали GNU coreutils и grep, это было бы довольно просто:

tail -f -s 60 -n +0 file.txt | grep -m 1 pattern

Отследите весь файл, начав с нулевой строки (-n +0), опрашивайте каждый -s секунд, и grep останавливается после -m Спички.

Для одноразового интерактивного поиска я бы не стал беспокоиться о парсинге даты и сначала вручную изменил бы начальную строку с помощью tail -n. Для синтаксического анализа даты можно написать сценарий на вашем любимом языке сценариев с подходящим для этого модулем (Python, Perl).

Наконец, если вам нужна поисковая система для ваших журналов, обратите внимание на внедрение систем управления событиями, таких как Graylog, ELK, Splunk, Log Insight, LogRhythm и т. Д.