@mat Oh, eu estava prestes a experimentar :). Obrigado de qualquer forma!
Pablo Fernandez
ele não funciona porque a construção <(foo) aguardará a conclusão do comando interno antes de ser substituída por um canal na linha de comando original a partir da qual o software poderá ler, e a cauda nunca concluirá :-)
Sim, isso é como eu faço isso, exceto que eu geralmente têm vários gnome-terminais abrir, cada um com uma sessão dentro dele
Tom O'Connor
1
Existe uma maneira de fazer isso sem abrir várias sessões ssh independentes?
tgies
8
Mas isso não permite que você pare com o rejeito Ctrl+C.
22614
@sorin para finalizar os processos, basta trazer cada um de volta ao primeiro plano fg; então você pode ctrl+c. Você faria isso uma vez para cada cauda que está executando. Ou você pode pkill -f sshsegmentar todos eles ao mesmo tempo.
Dale Anderson
34
Minha opção preferida é usar multitail. Eu executaria algo como:
A opção -f após ssh permite inserir uma senha antes de ser executada em segundo plano. Em seguida, você poderá obter os resultados linha por linha em um único arquivo e executando:
tail -f /tmp/somefile
Daria um pouco mais de controle sobre o comando "tail" atual, caso você desejasse usar outras opções de tail para exibir a saída.
Dê uma olhada na multitail . Assim como nos exemplos acima, você pode atribuí-lo como um comando para ssh e, em seguida, você terminará com uma tela exibindo (e armazenando em buffer para facilitar a rolagem) vários logs. Também faz coloração, o que é muito útil para detectar anomalias.
ou você pode usar a tela para criar dois terminais e depois dividi-los.
SSH no primeiro host do qual você deseja ajustar o arquivo de log e, antes de executar o tail, entre na tela.
Em seguida, finalize o arquivo neste host.
CTRL + A, c criará uma nova tela ou janela. A partir desta nova janela, ssh no segundo host e finalize o arquivo lá.
Agora, para criar 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 alternar para a parte inferior e colocar a primeira tela nela,
CTRL + A, TAB, isso o levará para a parte inferior. Agora, traga sua primeira sessão SSH para essa área:
CTRL + A "" (símbolo de aspas) e selecione a primeira sessão e pressione Enter.
Sei que isso pode parecer um monte de ginástica, e é, mas você se acostuma depois de usá-lo algumas vezes.
Além disso, você pode criar um arquivo .screenrc para que muito do que eu descrevi possa ser automatizado na primeira vez que você entra na tela.
Outra coisa boa sobre isso é que você pode simplesmente fechar sua sessão e retomar em outro lugar. Por exemplo, você está no trabalho e tem algum monitoramento em andamento. Você pode simplesmente fechar sua sessão sem sair da sessão e continuar quando chegar em casa ou em outro local.
Respostas:
Isso funcionou para mim:
fonte
Ctrl+C
.fg
; então você podectrl+c
. Você faria isso uma vez para cada cauda que está executando. Ou você podepkill -f ssh
segmentar todos eles ao mesmo tempo.Minha opção preferida é usar multitail. Eu executaria algo como:
fonte
Operation not permitted
, com 2 3 nós de web, é okOperation not permitted
, alguma pista?Você pode usar o fabric para ajustar vários hosts (e também resultados grep, se necessário):
fonte
Eu estava pensando que também seria possível usar:
A opção -f após ssh permite inserir uma senha antes de ser executada em segundo plano. Em seguida, você poderá obter os resultados linha por linha em um único arquivo e executando:
Daria um pouco mais de controle sobre o comando "tail" atual, caso você desejasse usar outras opções de tail para exibir a saída.
fonte
Confira esta resposta no stackoverflow - ele usa dsh e tail -f.
fonte
Dê uma olhada na multitail . Assim como nos exemplos acima, você pode atribuí-lo como um comando para ssh e, em seguida, você terminará com uma tela exibindo (e armazenando em buffer para facilitar a rolagem) vários logs. Também faz coloração, o que é muito útil para detectar anomalias.
fonte
O ssh paralelo tem uma boa solução para isso:
-t0
desativa o tempo limite da conexão, caso contrário, o pssh fechou a conexão-H '<host>...'
é a lista de hosts para executar o comando-P
é permitir a impressão do stdout de cada hosttail -f /var/log/app.log
pode ser qualquer comando que seu shell remoto possa executarfonte
O que você diria sobre algo assim? http://gist.github.com/303175
fonte
Apenas uma solução estranha, mas funciona!
Tela 1
Tela 2
fonte
who am i
e ele será exibido para você).Você pode fazer o check-out dbitail.
Uma ferramenta Java que criei, capaz de ler arquivos de log locais e distantes usando SSH. É bastante simples de usar.
Mais algumas explicações: https://github.com/pschweitz/DBITail/wiki
Basta baixar a versão correspondente ao seu sistema operacional, da versão nativa do jar executável no Java Runtime (requer java 8_40 ou superior):
https://github.com/pschweitz/DBITail/releases
Você pode encontrar uma documentação completa (incorporada à página do I Github também)
Philippe
fonte
ou você pode usar a tela para criar dois terminais e depois dividi-los.
SSH no primeiro host do qual você deseja ajustar o arquivo de log e, antes de executar o tail, entre na tela.
Em seguida, finalize o arquivo neste host.
CTRL + A, c criará uma nova tela ou janela. A partir desta nova janela, ssh no segundo host e finalize o arquivo lá.
Agora, para criar 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 alternar para a parte inferior e colocar a primeira tela nela,
CTRL + A, TAB, isso o levará para a parte inferior. Agora, traga sua primeira sessão SSH para essa área:
CTRL + A "" (símbolo de aspas) e selecione a primeira sessão e pressione Enter.
Sei que isso pode parecer um monte de ginástica, e é, mas você se acostuma depois de usá-lo algumas vezes.
Aqui está um tutorial realmente bom ou uma referência rápida aos comandos da tela: http://www.pixelbeat.org/lkdb/screen.html
Além disso, você pode criar um arquivo .screenrc para que muito do que eu descrevi possa ser automatizado na primeira vez que você entra na tela.
Outra coisa boa sobre isso é que você pode simplesmente fechar sua sessão e retomar em outro lugar. Por exemplo, você está no trabalho e tem algum monitoramento em andamento. Você pode simplesmente fechar sua sessão sem sair da sessão e continuar quando chegar em casa ou em outro local.
fonte
Você pode ajustar os arquivos remotamente usando o bash e o rsync, estou usando e é um ótimo script do bash. Dê uma olhada no seguinte tutorial
Arquivos de cauda remotamente usando bash e rsync
fonte