Como salvar a saída do console ainda mostrando

3

Preciso solucionar problemas de uma sessão de telnet e enviar os resultados para outra pessoa. Quando uso o redirecionamento, salvo o conteúdo da minha sessão, não consigo vê-lo no console.

Como canalizar terminal / programa atual e ainda mostrá-lo no console atual.

Quando eu uso o comando abaixo, posso salvar a saída do programa, mas não consigo vê-lo no console.

telnet ADDRESS PORT >> myoutputfile

Eu poderia usar uma opção de saída de telnet, estou procurando uma maneira independente de comando para fazê-lo.

A questão é específica para uma sessão de telnet, mas aplica-se a qualquer outro comando, incluindo aqueles que não têm uma "opção de salvar saída para arquivo".

    
por Rafael Borja 02.12.2014 / 21:15

2 respostas

6

A solução mais simples é usar tee : -

telnet ADDRESS PORT | tee -a myoutputfile

Isso copia a saída para a saída padrão e o nome do arquivo especificado, e a opção -a é anexada, assim como o redirecionamento >> fez.

    
por 02.12.2014 / 21:44
0

Existe um truque para usar a saída de erro como um segundo buffer para gerar saída para 2 dispositivos.

Seu comando seria:

telnet ADDRESS PORT >&2 2>>myoutputfile

Isso acrescenta a saída para myoutputfile e também grava o que sai para o console.

>&2 : copia a saída do fluxo 1 (console) para o fluxo 2 (erro)

2>> : isso garante que tudo, do fluxo 2, esteja sendo enviado para o arquivo.

Se você não quer arriscar adicionar o errorlogging ao arquivo, mude o 2 para 3 nas duas linhas. ( >&3 3>>file )

EDIT: Eu só notei a tag linux. Isso é escrito para o Windows, mas ainda pode funcionar.

    
por 02.12.2014 / 21:18