web-dev-qa-db-ja.com

wgetに1つの接続を使用させることは可能ですか?

個人アカウントでFTPを使用して約20GBのデータをダウンロードしようとしています(scpは利用できず、tar-ingはできません)。

次の標準コマンドを使用しています。

 wget -m ftp://user:[email protected]/db/

しばらくは機能しますが、ダウンロードの認証中に失敗します。

FTPクライアントでサーバーに接続しようとすると、次のように応答します。

530申し訳ありませんが、このユーザーのクライアントの最大数(15)はすでに接続されています。

したがって、wgetは多くの接続を開くようです。 wgetでサーバーへの接続を1つだけ使用することは可能ですか?

4
p.vitzliputzli

デフォルトでは、wgetpassive FTPを使用します。つまり、1つの制御接続を使用し、ファイル転送ごとに新しい接続を開きます。

active FTPでは、サーバーは必要な接続を開きます。着信接続を受け入れることができる場合は、FTP経由でファイルを転送するための推奨される方法です。

wgetは一度に1つのファイルのみをダウンロードするため、2つの接続のみを使用する必要があります。接続が適切に閉じられていないようです。転送モードを「アクティブ」に設定すると問題が解決するかどうか試してください。

アクティブFTPを有効にするには、--no-passive-ftpスイッチを使用します。

6
Dennis

Wgetはそのように機能すると思います。過去にFTP経由でミラーリングする必要があったときは、lftpを使用していました。

2
CR.

wgetは並列処理を行いませんが、接続が切断され、しばらくの間サーバーによってカウントされる可能性があります。

_--retry-connrefused --waitretry=30_が役立つはずです。明確でない場合は、wget(1)を見てみましょう。

2
Pierre Carrier