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'
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?
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
Tags curl file-transfer