回答:
通常、ftp getを適切に処理するwgetを使用できます(少なくとも私の経験では)。例えば:
wget -r ftp://user:pass@server.com/
-m
ミラーリングに適したものを使用することもできます。現在はと同等-r -N -l inf
です。
資格情報の詳細に特殊文字が含まれている場合は、--user
および--password
引数を指定して、それを機能させることができます。特定の文字を使用したカスタムログインの例:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
編集
@asmaierが指摘したように、-r
再帰のためであっても、デフォルトの最大レベルは5であることに注意してください。
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
サブディレクトリを見逃したくない場合は、ミラーリングオプションを使用して-m
ください:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
wget -m
(--mirror
)。wget -r
デフォルトでは、再帰の深さは5に制限されています。
--user
あり--password
ました。私のwgetは次のとおりです。GNU Wget 1.11.4 Red Hat modified
バージョンのものなのか、それともディストリビューションなものなのか...
-l 0
を使用し--mirror
て無限再帰レベルを設定できるため、.listingファイルなどの望ましくない副作用が発生する可能性のあるを使用する必要はありません
wget --ask-password -rl 99 ftp://user@server.com
。この方法では、パスワードは表示されps
ず、履歴に残りません。もちろん、ftpの性質上、暗号化されずにサーバーに送信されます。
$
)がある場合は、一重引用符を使用する必要があります。例--user='user' --password='pa$$word'
ThibautBarrèreの答えを補足するために。
使った
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
サーバー名の後ろの二重スラッシュに注意してください。スラッシュを追加しない場合、パスはユーザーのホームディレクトリからの相対パスになります。
-nH
サーバー名にちなんで名付けられたディレクトリの作成を回避します-nc
宛先にすでに存在する場合、新しいファイルの作成を回避します(スキップされます) --cut-dirs=5
/ absolute / path / to / directoryのコンテンツを取得し、それをwgetを起動するディレクトリに配置できます。数値5は、パスの5つのコンポーネントを除外するために使用されます。二重スラッシュは追加のコンポーネントを意味します。--ftp-user=USER
およびを使用できます--ask-password
。
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
ncftpの開始後に...
wget
、TARモードでも高速です。ありがとう!
lftp
がマシンにインストールされている場合は、を使用しますmirror dir
。これで完了です。ディレクトリを再帰的にダウンロードする場合は、下のCiroによるコメントを参照してください。
mirror -R dir
再帰的なディレクトリのアップロード/更新を行います
mirror ./
現在のパスにあるすべてのファイルとフォルダーを再帰的にダウンロードするためにも使用できます。
mirror
現在のディレクトリとそのサブフォルダーについては、単にと入力することもできます。
のscp
代わりにを使用できる場合ftp
、-r
オプションがこれを行います。FTPよりも新しいファイル転送メカニズムを使用できるかどうかを確認します。
scp
は引き続きsshを使用しようとしますが、FTP資格情報しかない場合は機能しません。私はこだわって技術は、現代ではありません:(古き良き2008言って2008年からのコメントへの応答奇妙な感じが、私はあなたのコメントを掲示日に18を回した。
代わりにWGetを使用してください。HTTPおよびFTPプロトコルをサポートしています。
wget -r ftp://mydomain.com/mystuff
幸運を!
リファレンス:http : //linux.about.com/od/commands/l/blcmdl1_wget.htm
Linuxにインストールできる「ncftp」があります。これはFTPプロトコルで動作し、ファイルとフォルダを再帰的にダウンロードするために使用できます。Linux上で動作します。使用されており、再帰的なフォルダー/ファイル転送で正常に動作しています。
このリンクを確認してください... http://www.ncftp.com/
使用しないでくださいftp
。telnet
安全なプロトコルを使用していないように、パスワードはクリアテキストで送信されます。これにより、第三者によるユーザー名とパスワードの取得が非常に簡単になります。
リモートディレクトリをリモートでコピーするには、次のオプションの方が適しています。
rsync
は、ssh
差分のみをコピーし、接続が切断された場合に途中で簡単に再起動できるため、経由でログインできる場合に最適なツールです。
ssh -r
ディレクトリ構造を再帰的にコピーするための2番目に最適なオプションです。
見る:
PROMPTコマンドでプロンプトを切り替えます。
使用法:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
。再帰的ではありません。09月22日09:01からの回答ティボーバレールは理解しやすいですが-l 0
、コメントに記載されているようにオプションを追加する必要があります