J'apprends à 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.
Utilisez l'indicateur -r
(récursif):
get -r *
Utilisation:
scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
Utilisez lftp
:
lftp sftp://user@Host
Ensuite, dans lftp, cd
dans le répertoire que vous souhaitez copier et utilisez la commande mirror
pour télécharger récursivement le répertoire sélectionné, comme ceci:
mirror
Cette commande accepte les options et les arguments:
miroir [OPTIONS] [la source [cible]]
Par exemple, l'option -R
(ou --reverse
) lui permet de télécharger l'arborescence du répertoire local dans le répertoire distant:
mirror -R
Reportez-vous à la page de manuel lftp(1)
du site du projet ou de Debian.org pour connaître les autres commandes et options.
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, GNOME et KDE) prennent en charge sftp de manière native, 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 sur sftp comme s’ils se trouvaient sur un système de fichiers classique, de sorte que vous n’ayez pas à vous soucier de leur accès via sftp.
eh bien, ce petit guide devrait vous aider, mettez en miroir un serveur distant dans un dossier local avec lftp
lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
sftp://
= utilise le protocole SFTPmirror
= mode miroirverbose
= affiche les fichiers en cours de téléchargementuse-pget-n
= nombre de segments, vraiment utile pour accélérer les gros fichiersparallel
= télécharge des fichiers multiplicateurs en même tempssi vous souhaitez télécharger des fichiers en parallèle, désactivez use-pget-n=8
avec --parallel=8
espérons que cela aide tous ceux qui ont besoin de mettre en miroir un dossier distant dans un dossier local
Essayez mget
au lieu de get
.
Clarification: mget
willwork si vous êtes dans le répertoire que vous voulez copier; si vous faites quelque chose comme ceci:
sftp> cd dir_to_get
sftp> mget *
il obtiendra tous les fichiers dans ce répertoire. Cependant, not obtiendra récursivement le contenu de tous les sous-répertoires.
get -r [directory]
obtient [directory]
et tout ce qui se trouve en dessous, où r
signifie récursif. J'ai trouvé cela simplement en tapant help
à partir de sftp
.
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 de sauvegardes.
J'ai le dossier de dist de Java dans le serveur distant, où j'ai l'arbre suivant:
- dist
--- Audio.jar
--- README
--- lib
----- lib.jar
L'objectif est: je veux utiliser SFTP? Et mettez-les dans/tmp/<>
Étape 1. sftp remoteuser @ ip
Étape 2. cd/var/tmp
Étape 2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib
Étape 3. lcd/tmp/dist
Étape 4. mget *
Étape 5. lcd/tmp/dist/lib
Étape 6. mget *
Étape 7. enfin j'ai mon objectif
$ ls
Audio.jar lib README.TXT