Você pode - por meio de vários canais SSH.
Por exemplo:
ssh user@host1 "mysqldump -u [user] -p[pwd] --no-create-db --no-create-info [db] [table] | gzip -c" | ssh user@host2 "gzip -c -d | mysql -h [host] -u [user] -p[pwd]"
Quebrando isso um pouco, você tem dois comandos SSH, conectados uns aos outros:
- O primeiro executa o
mysqldump
e, em seguida, canaliza o resultado para gzip
, que, por sua vez, envia o resultado para STDOUT.
- O segundo comando pega STDIN e o descompacta, depois o canaliza para o comando
mysql
.
Quando você combina os dois comandos, pode transmitir dados entre dois hosts diretamente usando o SSH.
Exemplo na prática abaixo:
cwatson@zeus:~$ ssh tyr
cwatson@tyr:~$ echo stuff123tyr > testfile.txt
cwatson@tyr:~$ cat testfile.txt
stuff123tyr
cwatson@tyr:~$ logout
ssh tyr "cat ~/testfile.txt | gzip -c" | ssh thor "gzip -c -d > ~/testfile.txt"
cwatson@zeus:~$ ssh thor
Last login: Fri Feb 26 17:28:01 2016 from host217-44-218-9.range217-44.btcentralplus.com
cwatson@thor:~$ cat testfile.txt
stuff123tyr