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

Слияние стандартного входа и файла журнала со стандартным выходом

Я ищу команду или сценарий bash, который может выполнять следующее:

То есть: я хочу, чтобы "supermerge" объединял стандарт в потоке с содержимым, непрерывно записываемым в файл журнала (в этом примере var / log / messages). Результат должен быть выписан на стандарт.

Причина в том, чтобы сканировать определенные сообщения об ошибках, и эти сообщения могут быть записаны как в файл журнала, так и в стандартный файл.

Например:

my_strange_program /var/log/messages | supermerge /var/log/messages | my_log_scanner

Примечание: Файлы журнала могут чередоваться: messages, messages.1, messages.2 и т. Д. Таким образом, невозможно просто tail файл, так как его можно переименовать.

Попробуй это:

my_strange_program /var/log/messages > /tmp/tmpfile | tail -F /var/log/messages /tmp/tmpfile | my_log_scanner

Есть инструмент под названием multitee. Похоже на то, что вы ищете. Я пытался понять, как это работает, но безрезультатно

Другой вариант - использовать мультитейл, если достаточно, чтобы слияние на экране

multitail -f /var/log/syslog -L "ping 4.2.2.1"