Como copiar uma pasta do host remoto para o local usando scp
?
Eu uso ssh
para entrar no meu servidor.
Em seguida, gostaria de copiar a pasta remota foo
para local /home/user/Desktop
.
Como faço para conseguir isso?
Como copiar uma pasta do host remoto para o local usando scp
?
Eu uso ssh
para entrar no meu servidor.
Em seguida, gostaria de copiar a pasta remota foo
para local /home/user/Desktop
.
Como faço para conseguir isso?
Respostas:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Ao não incluir o '/' à direita no final do foo, você moverá o próprio diretório (incluindo o conteúdo), em vez de apenas o conteúdo do diretório.
De man scp
(consulte o manual online )
-r Copia recursivamente diretórios inteiros
-C
bandeira adiciona compressão e da -c
bandeira permite que você passe em outros tipos de cifra para um melhor desempenho, como scp -c blowfish a@b:something .
visto na resposta de dimuthu
Desktop/foo
ou terá o Desktop/allcontentsofFooGohere
scp parece estranho às vezes para mim, isso faz uma coisa e depois outra
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
você deve terminar Desktop/foo
. Com scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
você você terminará com o conteúdo de foo
in Desktop
e todos os subdiretórios foo
espalhados em #Desktop
Para usar todo o poder do scp, você precisa seguir os próximos passos:
Então, por exemplo, se você possui este ~ / .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
você se salvará da entrada de senha e simplificará a sintaxe scp da seguinte maneira:
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
Além disso, você poderá usar o preenchimento de caminho remoto:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Atualizar:
Para habilitar bash-completion remoto você precisa ter bash-shell em ambos <source>
e <target>
exércitos, e funcionando corretamente bash-completion. Para mais informações, consulte perguntas relacionadas:
Como habilitar o preenchimento automático para caminhos remotos ao usar o scp?
Conclusão da guia Nome do arquivo SCP
Para copiar tudo de Local Local para Local Remoto (Upload)
scp -r /path/from/destination username@hostname:/path/to/destination
Para copiar tudo de Local remoto para Local (Download)
scp -r username@hostname:/path/from/destination /path/to/destination
Porta personalizada, em que xxxx
é o número da porta personalizada
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Copiar no diretório atual de Remoto para Local
scp -r username@hostname:/path/from/file .
Socorro:
-r
Copie recursivamente todos os diretórios e arquivos/
, Obter local completo porpwd
scp
substituirá todos os arquivos existenteshostname
será o nome do host ou o endereço IP-P portnumber
Nota: Às vezes, a porta personalizada não funciona porque a porta não é permitida no firewall, portanto, verifique se a porta personalizada é permitida no firewall para conexão de entrada e saída
pwd
obter a localização e usar mesmo
O que eu sempre uso é:
scp -r username@IP:/path/to/server/source/folder/ .
. (ponto) : significa current folder
. então copie do servidor e cole aqui apenas.
IP : pode ser como um endereço IP 125.55.41.311
ou como um host ns1.mysite.com
.
.
se refere ao diretório atual!
Melhor compactar primeiro o catálogo no servidor remoto:
tar czfP backup.tar.gz /path/to/catalog
Em segundo lugar, faça o download do controle remoto:
scp user@your.server.example.com:/path/to/backup.tar.gz .
No final, extraia os arquivos:
tar -xzvf backup.tar.gz
-C
flag, como scp -C a@b:bigfile .
.
E se você tem um monte de arquivos para baixar do local remoto e se não se importa muito com segurança, tente alterar a criptografia padrão scp (Triple-DES) para algo como 'blowfish'.
Isso reduzirá drasticamente o tempo de cópia de arquivos.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
em vez de blowfish
, mas tem falhas de segurança.
Cenário típico,
scp -r -P port username@ip:/path-to-folder .
explicado com uma amostra,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
Onde,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
A questão era como copiar uma pasta do remoto para o local com scp
comando.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Mas aqui está a melhor maneira de fazer isso sftp
: o SSH File Transfer Protocol (também Secure File Transfer Protocol ou SFTP) é um protocolo de rede que fornece acesso a arquivos, transferência e gerenciamento de arquivos em qualquer fluxo de dados confiável (wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Para obter ajuda sobre o sftp
comando, digite help
ou ?
.