Я ищу способ просмотреть только последние 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 и т. Д.