Transferência de arquivos semelhante a rsync sem rsyncd ou sshd no final remoto

3

Eu preciso transferir e atualizar uma estrutura de diretórios de um host linux na minha rede para outro host linux em uma rede de clientes. Meu único acesso à rede do cliente é através de um cliente Citrix. Eu consigo fazer o login através do SSH e posso copiar arquivos pelo SCP, mas não posso fazer nenhum tipo de encaminhamento de porta entre as duas redes.

Obviamente, tenho que copiar toda a estrutura de diretórios como um tarball na primeira vez. Mas depois disso, existe alguma maneira de otimizar a criação do tarball com base em uma listagem da estrutura de diretórios remotos?

Alguém pode recomendar uma ferramenta de linha de comando unix para ajudar com o acima?

    
por Russ Weeks 03.09.2013 / 20:34

3 respostas

2

Você pode usar arquivos tar incrementais com gnu tar (mas não bsd tar) sobre ssh para transferir apenas as alterações. O primeiro tar será nível 0, então nível 1 ... Você precisará manter o arquivo snapshot.snar e referenciá-lo a cada vez, senão ele criará um novo nível 0.

$ tar --listed-incremental snapshot.snar -cf - dir | ssh user@host "tar --listed-incremental=/dev/null -xf -"

Se você quiser usar a compactação para acelerar a transferência, adicione um comutador 'z' ou 'j' aos dois comandos tar.

    
por 04.09.2013 / 01:38
1

Você pode apenas rsync -av /local/dir/appA user@host:remote_dir/ - mas o programa rsync precisa ser instalado no servidor.

Se não houver rsync instalado, você poderá usar:

mkdir /tmp/host
sshfs user@host:remote_dir/ /tmp/host/

e depois:

rsync -av /local/dir/appA/ /tmp/host/
    
por 03.09.2013 / 22:06
1

Você pode usar o rsync + ssh para fazer isso (usando a opção rsync "-e").

Exemplo: rsync -avu -e 'ssh' /local/dir/appA user@host:remote_dir/

    
por 03.09.2013 / 20:45

Tags