Faça o download de muitos arquivos de uma só vez via SSH

1

Eu quero baixar uma pasta de um servidor contendo vários milhares de arquivos usando o ssh. Estou usando o Ubuntu e não tenho permissões de gravação no servidor, portanto, não consigo criar um .tar no servidor e copiá-lo posteriormente. Mas descarregar todos os arquivos individualmente é muito lento.

Então, como posso fazer o download dessa pasta com tantos arquivos como um arquivo usando a linha de comando?

    
por Patrick Weiß 05.03.2016 / 13:32

3 respostas

2

Você poderia fazer algo assim:

ssh username@hostname 'tar -cf - /dir/to/download' | gzip > remote_files.tgz

Isso executará o tar no servidor remoto, mas, em vez de gravar em um arquivo, ele será enviado para stdout . Isso será retornado por meio do SSH para sua máquina local, gzipado e depois gravado em um arquivo.

    
por 05.03.2016 / 13:36
2

A cópia segura "scp" é instalada com o OpenSSH. Então, isso deve fazer o truque ...

scp -r [email protected]:/path/to/remote/files /path/to/local/files

-r Copia recursivamente diretórios inteiros.

man scp para detalhes completos.

    
por 05.03.2016 / 13:38
1

Ambas as respostas anteriores funcionarão, mas estou surpreso que ninguém tenha mencionado rsync , como em:

rsync -az [email protected]:/path/to/remote/files/ /path/to/local/files/

Os pontos de bônus são que, se a conexão for interrompida, você poderá reiniciar e descobrir o que resta a ser copiado.

    
por 07.03.2016 / 15:44

Tags