Comment copier un dossier d'un hôte distant vers un hôte local en utilisant scp
?
J'utilise ssh
pour me connecter à mon serveur.
Ensuite, je voudrais copier le dossier distant foo
vers le local /home/user/Desktop
.
Comment faire ?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Depuis man scp
(Voir [manuel en ligne][1])
-r Copie récursivement des répertoires entiers
Pour utiliser toute la puissance de scp, vous devez passer par 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 la saisie du mot de passe et simplifierez la syntaxe 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 serez en mesure d'utiliser la complétion de chemin à distance :
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Update:
Pour activer la complétion de bash à distance, vous devez avoir bash-shell sur les hôtes <source>
et <cible>
, et la complétion de bash doit fonctionner correctement. Pour plus d'informations, consultez les questions connexes :
Comment activer l'autocomplétion pour les chemins distants en utilisant scp ?
Complément d'onglet pour les noms de fichiers SCP
Il est préférable de compresser d'abord le catalogue sur le serveur distant :
tar czfP backup.tar.gz /path/to/catalog
Ensuite, télécharger à partir du serveur distant :
scp [email protected]:/path/to/backup.tar.gz .
A la fin, extrayez les fichiers :
tar -xzvf backup.tar.gz