Cauda múltiplos arquivos remotos

37

Existe uma maneira de rastrear remotamente 2 arquivos?

Eu tenho dois servidores (aeb) por trás de um balanceador de carga e gostaria de fazer algo assim, se possível:

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

Obrigado!

    
por Pablo Fernandez 13.02.2010 / 00:10

12 respostas

28

Isso funcionou para mim:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &
    
por 13.02.2010 / 01:06
30

Minha opção preferida é usar o multitail. Eu corria algo como:

multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'
    
por 08.05.2012 / 11:42
6

Eu estava pensando que também seria possível usar:

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

A opção -f depois do ssh permite que você digite uma senha antes de ser executada em segundo plano. Então você pode ter os resultados linha por linha em um único arquivo e em execução:

tail -f /tmp/somefile

Daria a você um pouco mais de controle sobre o comando "tail" atual, caso deseje usar outras opções de acompanhamento para exibir a saída.

    
por 13.02.2010 / 02:28
6

Você pode usar o fabric para rastrear vários hosts (e também os resultados do grep, se necessário):

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR
    
por 07.02.2013 / 18:08
5

Confira esta resposta em stackoverflow - usa dsh e tail -f.

    
por 01.09.2010 / 22:41
5

Dê uma olhada no multitail . Assim como os exemplos acima, você pode dar isso como um comando para o ssh e, em seguida, você terminará com uma tela exibindo (e armazenando em buffer para fácil rolagem) vários logs. Também faz coloração, o que é muito útil para detectar anomalias.

    
por 13.02.2010 / 04:51
2

O ssh paralelo tem uma boa solução para isso:

pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
  • -t0 desativa o tempo limite da conexão, senão pssh fechou a conexão
  • -H '<host>...' é a lista de hosts para executar o comando
  • -P é ativar a impressão do stdout de cada host
  • tail -f /var/log/app.log pode ser qualquer comando que seu shell remoto possa executar
por 11.09.2015 / 15:48
1

O que você diria sobre algo assim? link

    
por 13.02.2010 / 01:15
1

Você pode verificar o dbitail.

Uma ferramenta Java que criei, capaz de ler arquivos de log locais e distantes usando o SSH. É bastante simples de usar.

Mais algumas explicações: link

Basta fazer o download da versão correspondente ao seu sistema operacional, do executável nativo do release jar em seu Java Runtime (requer java 8_40 ou superior):

link

Você pode encontrar uma documentação completa (incorporada com a página do I Github)

Philippe

    
por 01.07.2016 / 20:10
0

Apenas uma solução estranha, mas funciona!:

Tela 1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

Tela 2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6
    
por 13.02.2010 / 01:21
0

ou você pode usar a tela para criar dois terminais e depois dividi-los.

SSH no primeiro host para o qual deseja acompanhar o arquivo de registro e antes de executar a cauda, entre na tela.

Em seguida, siga o arquivo neste host.

CTRL + A, c criará uma nova tela ou janela. A partir desta nova janela ssh para o segundo host e cauda o arquivo lá.

Agora, crie a tela dividida

CTRL + A, SHIFT + S, isso criará uma tela dividida com o shell atual na parte superior e a parte inferior vazia. Para mudar para a parte inferior e colocar a primeira tela dentro dela,

CTRL + A, TAB, isso moverá você para a parte inferior. Agora, traga sua primeira sessão SSH para essa área:

CTRL + A, "(símbolo de cotação), selecione a primeira sessão e pressione Enter.

Eu sei que isso pode parecer muito com ginástica, e é, mas você se acostuma com isso algumas vezes.

Aqui está um ótimo tutorial ou referência rápida aos comandos da tela: link

Além disso, você pode criar um arquivo .screenrc para que muito do que eu descrevi possa ser automatizado na primeira vez que você entrar na tela.

Outra coisa interessante sobre isso é que você pode simplesmente fechar sua sessão e retomá-la em outro lugar. Por exemplo, você está no trabalho e tem algum monitoramento acontecendo. Você pode simplesmente fechar sua sessão sem fazer logout e continuar quando chegar em casa ou em outro local.

    
por 13.02.2010 / 02:42
0

Você pode Tailar arquivos remotamente usando o bash e o rsync, Estou usando e é um ótimo script para dar uma olhada no seguinte tutorial

Arquivos de cauda remotamente usando bash e rsync

    
por 08.05.2012 / 10:28