Question Comment puis-je obtenir un répertoire complet dans sftp?


J'apprends juste à utiliser sftp et je veux copier un répertoire de l'ordinateur distant sur mon ordinateur local. Si j'essaye

get [directory]

ça me donne cette erreur:

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

get -R ne fonctionne pas non plus.


160
2017-09-12 21:39


origine


La fonction récursive put / get a été ajoutée à OpenSSH dans la version 5.4, publiée en 2010. Vous pouvez envisager de mettre à niveau vos serveurs car elle ajoute également de nombreuses corrections de bogues et de meilleures fonctionnalités de sécurité. - Lèse majesté


Réponses:


Utilisez le -r (récursif) drapeau:

get -r *

231
2017-11-29 21:38



Merci d'avoir mis une réponse qui répond effectivement à la question. - jonnyflash
Donne moi: get: Invalid flag -r - ghbarratt
Cela me donne également un drapeau invalide. Je ne suis pas sûr que cela soit supporté sur tous les systèmes. - Ben
@Ben: Quand j'ai posé cette question en 2009, le -r le drapeau n'existait pas. Votre système est-il à jour? - Matthew
@silvinci pas tout systèmes actuels. Option illégale avec CentOS 6.4 openssh-clients-5.3p1-84.1.el6.x86_64 - CrackerJack9


Utilisation:

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

51
2017-09-12 21:51



Cela fonctionne, mais ce serait bien de pouvoir le faire à partir de SFTP (pour que je puisse voir ce que je copie avant de le copier). Est-ce possible? - Matthew
@Matthew: Je ne le 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 scp -r. Ou vous pouvez utiliser un client SFTP avancé tel que Filezilla. - Cristian Ciupitu
scp -r suivra les liens symboliques ... - jsleuth
Certains systèmes peuvent permettre sftp, mais non scp accès. - Turion


Utilisation lftp:

lftp sftp://user@host

Ensuite, utilisez le mirror commande à télécharger récursivement, comme ceci:

mirror -R

Ou télécharger uniquement:

mirror

Vous devez cd dans les répertoires que vous souhaitez mettre en miroir. Fonctionne comme par magie!


36
2018-04-08 13:54



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


Ne pas utiliser le programme sftp directement si vous pouvez trouver quelque chose de mieux. Pour Linux, de nombreux gestionnaires de fichiers (au moins Nautilus et Dolphin, ceux de GNOME et de KDE) supportent nativement sftp, et il y a toujours sshfs. Pour Windows, il y a WinSCP, et probablement autres. Le but de tout cela est de vous permettre d’accéder aux fichiers via sftp comme s’ils se trouvaient sur un système de fichiers normal, vous n’avez donc pas à vous soucier de les accéder via sftp.


15
2017-09-13 03:11



Wow, Nautilus fonctionne très bien avec SFTP. J'ai ajouté un marque-page dans Nautilus, et maintenant tout est ridiculement facile. Merci! - Matthew
J'ai eu un problème de performance avec Nautilus SFTP. Oui, c’est vraiment pratique mais je n’ai pas pu saturer le réseau à 1 Gbit / s via Nautilus, alors que sftp/ssh l'interface de ligne de commande que j'étais (transferts de fichiers d'environ 100 Mo / s). Le problème était donc Nautilus sur GNU / Linux Mint. - stamster


bien ce petit guide devrait aider, refléter un serveur distant vers le 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 des fichiers multiplicateurs en même temps

si vous voulez télécharger des fichiers en parallèle, éteignez use-pget-n=8 avec --parallel=8 

J'espère que cela aidera quiconque ayant besoin de mettre en miroir un dossier distant dans un dossier local.


13
2018-03-10 01:18



Merci, cela a fonctionné pour moi, après que les autres méthodes ont échoué (en particulier aucune option "-r" sur sftp). La première partie de la commande dans mon cas devait être citée, en raison de caractères en dollars 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' - Jason


Essayer mget au lieu de get.

Clarification: mget  volonté travailler si vous êtes dans le répertoire que vous souhaitez copier; si vous faites quelque chose comme ça:

sftp> cd dir_to_get
sftp> mget *

il obtiendra tous les fichiers dans ce répertoire. Cependant, il ne récupérera pas le contenu de tous les sous-répertoires.


12
2017-09-12 22:34



mget ne fonctionne pas mieux que pour moi. - Matthew
Obtenir Impossible de télécharger un fichier non régulier avec cette - Dchris
Cela a fonctionné pour moi sur un système où «get -r» ne fonctionnait pas. - Tchotchke


get -r [directory]

obtient [directory] et tout en dessous, où r signifie récursif. Je l'ai trouvé en tapant simplement help de sftp.


9
2018-03-06 16:56



OMI c'est la meilleure réponse à cette question. :) - ramrunner
Ceci est un duplicata d'un répondre de 29 novembre '10 (il y a presque un an et demi). - Cristian Ciupitu


Comme avec cp:

scp -rp user@host:/path/to/dir dir

Ce qui précède préservera les temps et les modes des fichiers et sous-répertoires d'origine. Ceci est particulièrement utile pour la récupération des sauvegardes.


4
2018-01-11 09:50



Ceci est fondamentalement un duplicata d'un répondre de 29 novembre '10 (il y a presque deux ans). - Cristian Ciupitu