Como copiar uma pasta de um host remoto para um host local utilizando o scp
?
Eu utilizo ssh
para fazer login no meu servidor.
Então, eu gostaria de copiar a pasta remota foo
para o local /home/user/Desktop
.
Como conseguir isto?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
De man scp
(Ver manual online)
-r Copiar recursivamente diretórios inteiros
Para usar a potência total de **scp*** você precisa passar pelos próximos passos:
Então, por exemplo, se você tiver este **~/.ssh/config***:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
você'vai se salvar da entrada de senha e simplificar scp sintaxe como esta:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
Mais adiante, você será capaz de usar a conclusão do caminho remoto:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Actualização:
Para permitir o bash-completion remoto, você precisa ter bash-shell em ambos <source>
e <target>
hosts, e bash-completion funcionando corretamente. Para mais informações, consulte as perguntas relacionadas:
Como ativar o auto-completamento para caminhos remotos ao usar scp?
Conclusão da aba de nome de arquivo SCP
É melhor comprimir primeiro o catálogo no servidor remoto:
tar czfP backup.tar.gz /path/to/catalog
Em segundo lugar, faça o download a partir do controle remoto:
scp [email protected]:/path/to/backup.tar.gz .
No final, extraia os arquivos:
tar -xzvf backup.tar.gz