Você normalmente usa um dos métodos a seguir quando precisa enviar ou receber arquivos por SSH usando tar
.
Copie SOURCEDIR de localhost para remotehost
Conceitualmente, eu geralmente me refiro a isso como arquivos de empilhamento, já que estamos pegando a saída de um comando tar
e estamos empurrando os arquivos para outro sistema através do SSH. Os arquivos são direcionados para cópia no sistema remoto em DESTDIR
.
$ tar zcvf - SOURCEDIR | ssh user1@remotehost 'cd DESTDIR; tar zxvf - '
exemplo 2
$ tar zcvf - SOURCEDIR | ssh user1@remotehost "(cd DESTDIR; tar zxvf -)"
exemplo 3
$ tar zcvf - SOURCEDIR | ssh -l user1 remotehost 'cd DESTDIR ; tar zxvf -'
Copie SOURCEDIR do remotehost para o localhost
Conceitualmente, muitas vezes eu me refiro a isso como puxar arquivos, já que estamos fazendo uma conexão SSH com um host remoto, onde estamos iniciando um comando tar
. A saída desse comando tar
é então direcionada para cópia no sistema local em DESTDIR
.
$ ssh remotehost 'tar zcvf - SOURCEDIR' | tar zxvf -
exemplo 2
$ ssh -n remotehost 'tar zcvf - SOURCEDIR' | tar zxvf -
exemplo 3
$ ssh remotehost "( cd SOURCEDIR ; tar zcvf - SOURCEFILES ) " | tar zxvf -