Salientando dois arquivos de log

13

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?

    
por Codemwnci 19.10.2010 / 10:00

4 respostas

19

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)'
    
por Riccardo Murri 19.10.2010 / 10:05
4

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

link

No Ubuntu 10.04: sudo apt-get install multitail

    
por Mike Diehn 19.10.2010 / 17:20
2

Sim, usando o comando screen , você pode ter 2 sessões bash em execução em um terminal.

  • Execute screen para começar,
  • Em seguida, digite 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).

    
por Jeremy 19.10.2010 / 10:05
0

Você pode usar o mkfifo para multiplexar a saída em um canal

crie um pipe fifo, grave n arquivos no pipe, depois gere o pipe

 mkfifo pipeName
 tail file1 &
 tail file2 &
 ...
 tail fileN &
 cat pipeName

quando terminar

 rm pipeName
    
por dvhh 19.10.2010 / 12:05

Tags