У меня есть веб-приложение, которое выводит ряд журналов с информацией о производительности. Один файл журнала выводит время выполнения кода, а другой - время SQL. У меня нет контроля над регистратором или кодом, который создает файлы журналов, но я хочу вывести журналы в одном месте.
В настоящее время я делаю что-то вроде этого
tail -f sqlLogs.log | grep sql-time
tail -f perflogs.log | grep exec-time
Это выводит что-то на консоль каждый раз, когда в приложении выполняется SQL. Но я должен запустить код в двух отдельных сессиях SSH. Тем не менее, я хочу иметь возможность подключать оба файла в одном сеансе SSH. Это возможно?
Посмотрите на MultiTail . Это твой друг.
Вы можете иметь несколько хвостов журнала в
http://www.vanheusden.com/multitail/
На Ubuntu 10.04:
sudo apt-get install multitail
источник
Да, используя
screen
команду, вы можете запустить 2 сеанса bash на одном терминале.screen
чтобы начать,Ctrl-a
затемS
(Примечание: капитальное S) , чтобы разделить экран на 2.Ctrl-a
затемTab
переместит вас между двумя сессиями.Ctrl-a
затемc
запустит оболочку в этом новом регионе.(Пожалуйста, ознакомьтесь с ответом Риккардо, прежде чем использовать его, он намного проще, я оставлю это, поскольку он может быть полезен для людей с похожими, но разными проблемами).
источник
Вы можете использовать mkfifo для мультиплексирования вывода на один канал
создайте трубу fifo, подключите n файлов к трубе, затем cat the pipe
когда закончено
источник
tail fileN >> pipeName
.