web-dev-qa-db-ja.com

sftpでディレクトリ全体を取得する方法

私はただsftpを使うことを学んでいます、そして私は私のローカルコンピュータにリモートコンピュータからディレクトリをコピーしたいです。試してみると

get [directory]

それは私にこのエラーを与えます:

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

get -Rも動作しません。

182
Matthew

-r(recursive)フラグを使用してください。

get -r *
255
mani-fresh

つかいます:

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

lftp :を使用してください。

lftp sftp://user@Host

次に、lftp内で、コピーしたいディレクトリにcdを入力し、mirrorコマンドを使用して、選択したディレクトリを次のように再帰的にダウンロードします。

mirror

このコマンドはオプションと引数を受け取ります。

鏡 [オプション] [ソース [ターゲット]]

たとえば、-R(または--reverse)オプションを指定すると、ローカルディレクトリツリーがリモートディレクトリにアップロードされます。

mirror -R

他のコマンドやオプションについてはlftp(1)のmanページ プロジェクトのサイト または Debian.org を参照してください。

40
bshanks

まあ、この小さなガイドは、lftpでリモートサーバをローカルフォルダにミラーリングするのを手伝うべきです

lftp sftp://user:[email protected]:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// =はSFTPプロトコルを使用します
  • mirror =ミラーモード
  • verbose =はダウンロード中のファイルを表示します
  • use-pget-n =セグメント数、特に大きなファイルを高速化するのに役立ちます
  • parallel =乗数ファイルを同時にダウンロードします

ファイルを並行してダウンロードする場合は、use-pget-n=8--parallel=8に切り替えます。

リモートフォルダをローカルフォルダにミラーリングする必要がある人に役立つことを願います。

15
nwgat

もっと良いものが見つかるなら、sftpプログラムを直接使わないでください。 Linuxでは、多くのファイルマネージャ(少なくともNautilusとDolphin、GNOMEとKDEのもの)がsftpをネイティブにサポートしており、常にsshfsがあります。 Windowsの場合、WinSCPがあり、おそらく 他のもの があります。これらすべての要点は、通常のファイルシステム上にあるかのように、sftpを介してファイルにアクセスできるようにすることです。したがって、sftpを介してそれらにアクセスしていることに注意する必要はありません。

15
Ryan Thompson

mgetの代わりにgetを試してください。

明確化:mgetはあなたがコピーしたいディレクトリの中にいるならうまくいくでしょう。あなたがこのような何かをするならば:

sftp> cd dir_to_get
sftp> mget *

そのディレクトリ内のすべてのファイルが取得されます。ただし、notはサブディレクトリの内容を再帰的に取得します。

13
Ken Keenan
get -r [directory]

[directory]とその下のすべてを取得します。rは再帰を表します。これは、helpからsftpと入力するだけで見つかりました。

10
drkvogel

cpと同様に、

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

上記は元のファイルとサブディレクトリの時間とモードを保存します。これはバックアップの取得に特に役立ちます。

4
Aziraphale

私は次のツリーを持っているリモートサーバーのJava distフォルダを持っています。

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

目標は:私はSFTPを使用したいですか?そしてそれらを/ tmp/<>に入れます。

ステップ1. sftp remoteuser @ ip

ステップ2. cd/var/tmp

ステップ2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib

ステップ3. lcd/tmp/dist

ステップ4. mget *

ステップ5. lcd/tmp/dist/lib

ステップ6. mget *

ステップ7。最後に私は私の目標を持っています

$ ls
Audio.jar  lib  README.TXT
0
YumYumYum