saída de várias linhas através do comando SSH

1

Eu preciso de uma saída de várias linhas sobre o comando remoto SSH.

Se eu usar este comando na máquina local, tenho a saída correta:

sudo docker stats --no-stream container1 container2 container3 | awk '{if (NR!=1) {print $1,$9,'$(date +%s)'}}'

container1 72.85 1471958776
container2 14.83 1471958776
container3 9.362 1471958776

Se lançado remotamente, retira os feeds de linha:

ssh -o LogLevel=QUIET -t -i key.pem user@host sudo docker stats --no-stream container1 container2 container3 | awk '{if (NR!=1) {print $1,$9,'$(date +%s)'}}'

container1 72.85 1471957426 container2 14.83 1471957426 container3 9.362 1471957426

Como posso obter o mesmo resultado que a saída local, um por linha?

    
por Steph 23.08.2016 / 15:34

2 respostas

1

Acredito que isso seja devido ao argumento -t para ssh . Isso força uma alocação tty e solicita a saída do terminal: cores, seqüências de controle. Mas, em vez de exibir a saída em seu terminal local (que saberia como fazê-lo), você está colocando-o em awk . (Para ver exatamente o que você está recebendo de ssh , use cat -A em vez de awk .) Você deve evitar -t quando a saída não é destinada a um terminal, ou então tentar limpar o oculto seqüências de controle. O último é mais difícil de fazer, então eu sugiro o primeiro.

    
por 23.08.2016 / 16:16
0

Eu resolvi com o comando xargs :

echo ${RESULTS} | xargs -n3
    
por 24.08.2016 / 11:09

Tags