Comment copier un dossier d'un hôte distant vers un hôte local en utilisant scp
?
j'utilise ssh
pour connecter à mon serveur.
Ensuite, je voudrais copier le dossier distant foo
sur local /home/user/Desktop
.
Comment puis-je y parvenir?
Comment copier un dossier d'un hôte distant vers un hôte local en utilisant scp
?
j'utilise ssh
pour connecter à mon serveur.
Ensuite, je voudrais copier le dossier distant foo
sur local /home/user/Desktop
.
Comment puis-je y parvenir?
Réponses:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
En n'incluant pas le '/' à la fin de foo, vous déplacerez le répertoire lui-même (y compris le contenu), plutôt que seulement le contenu du répertoire.
De man scp
(Voir le manuel en ligne )
-r Copie récursive de répertoires entiers
-C
indicateur ajoute la compression et l' -c
indicateur vous permet de passer dans d'autres types de chiffrement pour de meilleures performances, comme on scp -c blowfish a@b:something .
le voit dans la réponse de dimuthu
Desktop/foo
ou allez-vous avoir Desktop/allcontentsofFooGohere
scp semble parfois bizarre pour moi cela fait une chose puis une autre
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
vous devrait se retrouver avec Desktop/foo
. Avec scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
vous vous retrouverez avec le contenu de foo
in Desktop
et tous les sous-répertoires de foo
jonché sousDesktop
Pour utiliser toute la puissance de scp, vous devez passer par les étapes suivantes:
Ensuite, par exemple si vous avez ce ~ / .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
vous vous sauverez de 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 pourrez utiliser l'achèvement de chemin à distance:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Mise à jour:
Pour activer bash-completion à distance vous devez avoir-shell bash sur les deux <source>
et <target>
hôtes, et bash-completion fonctionne correctement. Pour plus d'informations, consultez les questions connexes:
Comment activer la saisie semi-automatique pour les chemins distants lors de l'utilisation de scp?
Achèvement de l'onglet du nom de fichier SCP
Pour tout copier d'un emplacement local vers un emplacement distant (téléchargement)
scp -r /path/from/destination username@hostname:/path/to/destination
Pour tout copier d' un emplacement distant vers un emplacement local (téléchargement)
scp -r username@hostname:/path/from/destination /path/to/destination
Port personnalisé où xxxx
est le numéro de port personnalisé
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Copier sur le répertoire actuel de Remote vers Local
scp -r username@hostname:/path/from/file .
Aidez-moi:
-r
Copiez récursivement tous les répertoires et fichiers/
, obtenir l'emplacement complet parpwd
scp
remplacera tous les fichiers existantshostname
sera le nom d'hôte ou l'adresse IP-P portnumber
Remarque: Parfois, le port personnalisé ne fonctionne pas car le port n'est pas autorisé dans le pare-feu, alors assurez-vous que le port personnalisé est autorisé dans le pare-feu pour la connexion entrante et sortante
pwd
pour obtenir l'emplacement et l'utiliser
Ce que j'utilise toujours c'est:
scp -r username@IP:/path/to/server/source/folder/ .
. (point) : cela signifie current folder
. alors copiez depuis le serveur et collez ici uniquement.
IP : il peut s'agir d'une adresse IP 125.55.41.311
ou d'un hôte ns1.mysite.com
.
.
fait référence au répertoire actuel!
Mieux vaut d'abord compresser le catalogue sur le serveur distant:
tar czfP backup.tar.gz /path/to/catalog
Deuxièmement, téléchargez à distance:
scp user@your.server.example.com:/path/to/backup.tar.gz .
À la fin, extrayez les fichiers:
tar -xzvf backup.tar.gz
-C
drapeau, comme scp -C a@b:bigfile .
.
Et si vous avez un enfer de fichiers à télécharger à partir de l'emplacement distant et si vous ne vous souciez pas beaucoup 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 user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
au lieu de blowfish
, mais il a des failles de sécurité.
Scénario typique,
scp -r -P port username@ip:/path-to-folder .
expliqué avec un échantillon,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
où,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
La question était de savoir comment copier un dossier de distant vers local avec la scp
commande.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Mais voici la meilleure façon de le faire sftp
- SSH File Transfer Protocol (également Secure File Transfer Protocol, ou SFTP) est un protocole réseau qui fournit un accès aux fichiers, un transfert de fichiers et une gestion de fichiers sur n'importe quel flux de données fiable (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
Pour obtenir de l'aide sur la sftp
commande, tapez simplement 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 . root@888.888.888.888:/usr/share/nginx/www/example.org/
root@