Como copiar uma pasta do host remoto para o local usando scp?
Eu uso sshpara entrar no meu servidor.
Em seguida, gostaria de copiar a pasta remota foopara local /home/user/Desktop.
Como faço para conseguir isso?
Como copiar uma pasta do host remoto para o local usando scp?
Eu uso sshpara entrar no meu servidor.
Em seguida, gostaria de copiar a pasta remota foopara 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
-Cbandeira adiciona compressão e da -cbandeira 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/fooou terá o Desktop/allcontentsofFooGoherescp 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 fooin Desktope todos os subdiretórios fooespalhados 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 porpwdscp substituirá todos os arquivos existenteshostname será o nome do host ou o endereço IP-P portnumberNota: À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
pwdobter 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.311ou 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
-Cflag, 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/
arcfourem 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 scpcomando.
$ 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 sftpcomando, digite helpou ?.