transfere o arquivo para o host remoto e anexa ao arquivo se existir

0

Eu tenho um programa de linha de comando que continuamente gera saída no shell.

Eu gostaria de poder transferir a saída para outro host unix para o qual eu conheço IP, nome de usuário e senha.

Como o programa não termina, eu também gostaria de atualizar continuamente o arquivo, sem remover a saída anterior.

Existe uma maneira de fazer isso a partir da linha de comando?

    
por Bob 05.01.2014 / 01:09

3 respostas

2

Eu acho que um método ideal envolveria enviá-lo para o servidor remoto via syslog. Este simples comando ssh também deve funcionar:

somecommand | ssh somehost 'cat - >> file.log'
    
por 05.01.2014 / 01:56
1
  1. Re-direcione a saída do programa de linha de comando para um arquivo com > > nome do arquivo
  2. Use o rsync para enviá-lo para a máquina remota e arquivar
por 05.01.2014 / 01:20
0

Automação:

1.Instale ou compile sshpass
2.Adicione as linhas ao seu .bashrc de .profile

HOSTNET=<YOUR_REMOT_HOST>
LOGINNET=<YOUR_REMOTE_LOGIN>
PASSNET=<YOUR_REMOTE_PASSWD>
teenet () {
    sshpass -p$PASSNET ssh $LOGINNET@$HOSTNET 'tee >> YOUR_REMOTE_LOG_FILE'
}

3.Agora atualize seu ambiente: . ~/.bashrc Agora você pode canalizar cada saída para teenet.
Exemplo:

tail -f /var/log/syslog | teenet
    
por 05.01.2014 / 02:49