web-dev-qa-db-fra.com

Comment copier un dossier de distant en local à l'aide de scp?

Comment copier un dossier de l'hôte distant vers l'hôte local en utilisant scp?

J'utilise ssh pour ouvrir une session sur mon serveur.
Ensuite, j'aimerais copier le dossier distant foo dans le répertoire local /home/user/Desktop.

Comment y parvenir?

2473
Slasengger
scp -r [email protected]:/path/to/foo /home/user/Desktop/

De man scp (Voir manuel en ligne )

-r Copier récursivement des répertoires entiers

4549
Gryphius

Pour utiliser toute la puissance de scp , vous devez suivre les étapes suivantes:

  1. Autorisation de clé publique
  2. Créer des alias ssh

Ensuite, par exemple si vous avez ceci ~/.ssh/config :

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

vous vous épargnerez de la saisie du mot de passe et simplifierez la syntaxe de scp comme ceci:

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

De plus, vous pourrez utiliser la complétion de chemin à distance:

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

Mise à jour:

Pour activer la complétion bash à distance, vous devez disposer de bash-shell sur les deux hôtes <source> et <target>, et fonctionner correctement avec bash-complétion. Pour plus d'informations, voir les questions connexes:

Comment activer l'auto-complétion pour les chemins distants lors de l'utilisation de scp?
complétion de l'onglet du nom de fichier SCP

287

Pour tout copier de emplacement local à emplacement distant (télécharger)

scp -r /path/from/destination username@hostname:/path/to/destination

Pour tout copier de emplacement distant à emplacement local (télécharger)

scp -r username@hostname:/path/from/destination /path/to/destination

Port personnalisé où xxxx est port personnalisé nombre

 scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination

Copier sur le répertoire actuel de Remote to Local

scp -r username@hostname:/path/from/file .

Aide:

  1. -r Copier récursivement tous les répertoires et fichiers
  2. Toujours utiliser l'emplacement complet de /, Obtenir l'emplacement complet d'ici pwd
  3. scp remplacera tous les fichiers existants
  4. hostname sera le nom d'hôte ou l'adresse IP
  5. si un port personnalisé est nécessaire (en plus du port 22), utilisez -P portnumber
  6. . (point) - cela signifie le répertoire de travail actuel, donc téléchargez/copiez du serveur et collez-le ici uniquement.

Remarque: Parfois, le port personnalisé ne fonctionnera pas car ce port n'est pas autorisé dans le pare-feu. Assurez-vous donc que ce port personnalisé est autorisé dans le pare-feu pour les connexions entrantes et sortantes.

190
Shiv Singh

Ce que j'utilise toujours, c'est:

scp -r username@IP:/path/to/server/source/folder/  .

. (point): cela signifie current folder. alors copiez du serveur et collez ici seulement.

IP: peut être une adresse IP du type 125.55.41.311 ou un hôte du type ns1.mysite.com.

47
Manish Shrivastava

Mieux vaut commencer par compresser le catalogue sur le serveur distant:

tar czfP backup.tar.gz /path/to/catalog

Deuxièmement, téléchargez à distance:

scp [email protected]:/path/to/backup.tar.gz .

A la fin, extrayez les fichiers:

tar -xzvf backup.tar.gz
28
justi

Et si vous avez un sacré fichier à télécharger depuis un emplacement distant et que vous ne vous souciez pas de la sécurité, essayez de changer le cryptage par défaut scp (Triple-DES) en quelque chose comme "blowfish".

Cela réduira considérablement le temps de copie des fichiers.

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
21
dimuthu

Accédez aux fichiers sur la barre d'outils de votre unité

enter image description here

Appuyez sur Ctrl + l et écrivez [email protected].

192.168.1.103 est l'hôte que vous souhaitez connecter.

L'ici un exemple

enter image description here

19
Ronald

Scénario typique,

scp -r -P port username@ip:/path-to-folder  .

expliqué avec un échantillon,

scp -r -P 27000 [email protected]:/tmp/hotel_dump .

où,

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
18
Arun G

Si vous rencontrez "Trop d'échecs d'authentification", spécifiez la clé SSH exacte que vous avez ajoutée à votre serveur ssh:

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
12
kaiser

La question était de savoir comment copier un dossier de distant en local avec la commande scp.

$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir

Mais voici le meilleur moyen de le faire avec sftp - Le protocole de transfert de fichiers SSH (également appelé protocole de transfert de fichiers sécurisé ou SFTP) est un protocole réseau fournissant un accès, un transfert et une gestion de fichiers via un flux de données fiable .(Wikipédia).

$ 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

Pour obtenir de l'aide sur la commande sftp, il suffit de taper help ou ?.

10
Fulvio

Je ne sais pas pourquoi mais j'ai dû utiliser le dossier local avant la directive du serveur source. pour le faire fonctionner

scp -r . [email protected]:/usr/share/nginx/www/example.org/
5
Salem