Sim, as linhas de saída tail são anexadas a todos os arquivos fornecidos na linha de comando:
tail -F sqlLogs.log perflogs.log | egrep '(sql-time|exec-time)'
Eu tenho um aplicativo da web que gera um número de arquivos de log com informações de desempenho. Um arquivo de log gera tempos de execução de código e outro gera horários de SQL. Eu não tenho controle sobre o logger ou o código que produz os arquivos de log, mas eu quero produzir os logs em um só lugar.
Atualmente estou fazendo algo assim
tail -f sqlLogs.log | grep sql-time
tail -f perflogs.log | grep exec-time
Isso gera algo para o console toda vez que um SQL é executado no aplicativo. Mas eu tenho que executar o código em duas sessões SSH separadas. No entanto, o que eu quero ser capaz de seguir os dois arquivos, na mesma sessão SSH. Isso é possível?
Sim, as linhas de saída tail são anexadas a todos os arquivos fornecidos na linha de comando:
tail -F sqlLogs.log perflogs.log | egrep '(sql-time|exec-time)'
Dê uma olhada no MultiTail . É seu amigo.
Você pode ter várias caudas de log em
- different windows, a al vim's 'split' - or have it merge the two (or N) streams into one view and - you can filter steams by regex and, if you like, - it will 'tee' the output to a file
No Ubuntu 10.04: sudo apt-get install multitail
Sim, usando o comando screen
, você pode ter 2 sessões bash em execução em um terminal.
screen
para começar, Ctrl-a
then S
(NOTE: maiúscula S) para dividir a tela em 2. Ctrl-a
then Tab
moverá você entre as duas sessões. Ctrl-a
then c
iniciará um shell nessa nova região. (Por favor, veja a resposta de Riccardo antes de usar isso, o seu é muito mais simples, eu vou deixar isso como pode ser útil para pessoas com problemas semelhantes, mas diferentes).