Copie do servidor remoto que não possui rsync

7

Eu preciso recursivamente copiar uma pasta de um servidor remoto Ubuntu, onde eu tenho ssh access. Eu não quero seguir links simbólicos, nem copiar permissões / proprietário / grupo, porque meu sistema cliente (Ubuntu também) não tem os mesmos usuários que o servidor.

Esta rsync solução pode ser a melhor 1. Mas o servidor não tem rsync e não consigo instalá-lo lá; então esse comando me dá erro.

Existe outra maneira de copiar a pasta remota?

    
por BowPark 20.05.2015 / 11:40

3 respostas

7

Se você tiver permissão para usar o FUSE em sua máquina local, instale o sshfs package . O SSHFS permite que você acesse arquivos remotos através do acesso normal ao sistema de arquivos: ele monta uma árvore de diretórios acessada por SFTP. Você só precisa ter acesso SFTP no lado remoto (que é ativado por padrão com o OpenSSH no Ubuntu). Depois que o diretório remoto é montado, você pode usar as ferramentas de sua escolha para manipular arquivos, sem ter que se preocupar se eles são locais ou remotos.

mkdir ~/net/remote-server
sshfs remote-server:/ ~/net/remote-server
rsync -a --no-copy-links ~/net/remote-server/remote/path/ /local/path/
fusermount -u ~/net/remote-server
    
por 21.05.2015 / 03:27
8

Você pode usar scp -r para copiar arquivos recursivamente entre hosts diferentes. Sua sintaxe poderia ser como scp -r user@Ubuntu-Server:/home/myuser ./from_Ubuntu_server

Além disso, você pode fazer o upload do seu binário local rsync usando scp para o servidor Ubuntu e adicionar o --rsync-path=/home/myuser/rsync ao seu comando rsync original para que seu cliente rsync saiba qual rsync deve invocar no servidor Ubuntu.

    
por 20.05.2015 / 11:42
3

Você pode usar uma combinação tar e ssh da seguinte forma:

tar cvzf - folder/ | ssh -C user_name@host_name "cd ~/; tar xvzf -"
    
por 20.05.2015 / 11:56