Я смотрю разные логи
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Как можно по-разному раскрасить выходные данные каждого журнала?
command-line
colors
tail
Даниэль В.
источник
источник
multitail
и ответы на этот вопросОтветы:
Использование GNU
grep
для раскраски:Обратите внимание, что первые 2 запускаются в фоновом режиме. Это означает, что они не будут уничтожены, если вы нажмете Ctrl-C(оболочка явно игнорирует SIGINT для асинхронных заданий).
Чтобы предотвратить это, вы можете сделать вместо этого:
Таким образом Ctrl-C, последний
tail+grep
иcat
умрет (от SIGINT) и два других хвоста grep + умрут от SIGPIPE в следующий раз, когда они что-то напишут.Или восстановите обработчик SIGINT (не будет работать со всеми оболочками):
Вы также можете сделать это в
color
функции. Это не относится кtail
, ноtail
умрет от SIGPIPE в следующий раз, когда он пишет, еслиgrep
умрет.Или сделайте весь хвост + grep функцией:
Или все это:
источник
tailc
функцию, которая работала лучше всего и выглядит наиболее интуитивно понятной в сценарии.Что-то вроде этого сработало для меня:
Объяснение:
tail -f file
: добавление данных по мере роста файлаawk -W interactive
: установитьawk
интерактивный режим'{printf "\033[1;31m%s\033[0m\n", $0}'
распечатайте вывод colorzized на терминал.\033[1;31m
означает красный\033[1;32m
означает зеленый\033[1;34m
означает синийисточник
-W interactive
кажетсяmawk
-специфичным. (способmawk
буферизации входных данных по умолчанию также уникален и-W interactive
не требуется в другихawk
реализациях).