255 votes

Comment obtenir un répertoire entier en sftp ?

Je viens d'apprendre à utiliser sftp, et je veux copier un répertoire de l'ordinateur distant vers mon ordinateur local. Si j'essaie

get [directory]

cela me donne cette erreur :

Cannot download non-regular file: /home/mpirocch/Documents

get -R ne fonctionne pas non plus.

2 votes

Le mode récursif put/get a été ajouté à OpenSSH dans la version 5.4, publiée en 2010. Vous pouvez envisager de mettre à jour vos serveurs car cette version ajoute également de nombreuses corrections de bogues et de meilleures fonctionnalités de sécurité.

2 votes

Wow, sftp est fondamentalement inutile tel quel. lftp aide beaucoup.

361voto

mani-fresh Points 3664

Utilisez le -r (récursif) :

get -r *

23 votes

Merci d'avoir mis une réponse qui répond réellement à la question.

31 votes

Donne-moi : get: Invalid flag -r

3 votes

Cela me donne également un drapeau invalide. Je ne suis pas sûr que cela soit supporté par tous les systèmes.

61voto

bene Points 2144

Utilisez :

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents

5 votes

Cela fonctionne, mais ce serait bien de pouvoir le faire à partir de SFTP (afin que je puisse voir ce que je copie avant de le copier). Est-ce possible ?

0 votes

@Matthew : Je ne pense pas. Je me pose la même question depuis un certain temps et la meilleure réponse que j'ai pour le moment est la suivante scp -r . Vous pouvez aussi utiliser un client SFTP avancé comme Filezilla.

1 votes

Scp -r suivra les liens symboliques...

48voto

Pawka Points 1150

Utilisez lftp :

lftp sftp://user@host

Ensuite, dans lftp, cd dans le répertoire que vous voulez copier, et utilisez l'option mirror pour télécharger récursivement le répertoire sélectionné, comme ceci :

mirror

Cette commande accepte des options et des arguments :

mirror \[_OPTIONS_\] \[_source_ \[_target_\]\]

Par exemple, le -R (ou --reverse ) option permet de télécharger l'arborescence du répertoire local vers le répertoire distant :

mirror -R

Voir le lftp(1) page de manuel sur le site du projet o sur Debian.org pour les autres commandes et options.

5 votes

+1 lftp est comme un petit paquet de magie et de joie !

24voto

Clayton Points 1393

Ce petit guide devrait vous aider à créer un miroir d'un serveur distant vers un dossier local avec lftp.

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = utilise le protocole SFTP
  • mirror = mode miroir
  • verbose = montre les fichiers en cours de téléchargement
  • use-pget-n = Nombre de segments, très utile pour accélérer les gros fichiers.
  • parallel = télécharge les fichiers multiplicateurs en même temps

si vous voulez télécharger des fichiers en parallèle, sortez de l'application use-pget-n=8 con --parallel=8

J'espère que cela aidera tous ceux qui ont besoin de créer un miroir d'un dossier distant vers un dossier local.

0 votes

Merci, cela a fonctionné pour moi, après que les autres méthodes aient échoué (en particulier l'absence d'option "-r" sur sftp). Dans mon cas, la première partie de la commande devait être citée, en raison des caractères dollar dans le mot de passe. lftp 'sftp://user:pa$$word@server.org:22' -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

0 votes

Excellent, merci. Je voulais copier du local au serveur, donc j'ai utilisé mirror -R ...

0 votes

Si vous obtenez mirror: Fatal error: Host key verification failed. l'empreinte de la clé de l'hôte doit probablement encore être acceptée (c'est-à-dire utiliser ssh / sftp pour établir une première connexion, et confirmer l'empreinte digitale avec yes )

16voto

Jeff Dallien Points 1171

N'utilisez pas directement le programme sftp si vous pouvez trouver quelque chose de mieux. Pour Linux, de nombreux gestionnaires de fichiers (au moins Nautilus et Dolphin, ceux de GNOME et KDE) supportent sftp en natif, et il y a toujours sshfs. Pour Windows, il y a WinSCP, et probablement autres . Le but de tous ces éléments est de vous permettre d'accéder aux fichiers par sftp comme s'ils étaient sur un système de fichiers ordinaire, de sorte que vous n'ayez pas à vous soucier du fait que vous y accédez par sftp.

0 votes

Wow, nautilus fonctionne très bien avec SFTP. J'ai ajouté un signet dans Nautilus, et maintenant tout est ridiculement facile. Merci !

1 votes

J'ai eu des problèmes de performance avec Nautilus SFTP. Oui, c'est très pratique mais je n'ai pas pu saturer un réseau à 1 Gbit/s via Nautilus, alors qu'avec un simple sftp/ssh J'étais une interface de ligne de commande (transferts de fichiers d'environ 100 Mo/s). Le problème était donc Nautilus sur GNU/Linux Mint.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X