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?
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
Pour utiliser toute la puissance de scp , vous devez suivre les étapes suivantes:
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
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:
-r
Copier récursivement tous les répertoires et fichiers/
, Obtenir l'emplacement complet d'ici pwd
scp
remplacera tous les fichiers existantshostname
sera le nom d'hôte ou l'adresse IP-P portnumber
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.
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
.
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
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/
Accédez aux fichiers sur la barre d'outils de votre unité
Appuyez sur Ctrl + l et écrivez [email protected].
192.168.1.103 est l'hôte que vous souhaitez connecter.
L'ici un exemple
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
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
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 ?
.
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/