個人アカウントでFTPを使用して約20GBのデータをダウンロードしようとしています(scp
は利用できず、tar
-ingはできません)。
次の標準コマンドを使用しています。
wget -m ftp://user:[email protected]/db/
しばらくは機能しますが、ダウンロードの認証中に失敗します。
FTPクライアントでサーバーに接続しようとすると、次のように応答します。
530申し訳ありませんが、このユーザーのクライアントの最大数(15)はすでに接続されています。
したがって、wgetは多くの接続を開くようです。 wget
でサーバーへの接続を1つだけ使用することは可能ですか?
デフォルトでは、wget
はpassive FTPを使用します。つまり、1つの制御接続を使用し、ファイル転送ごとに新しい接続を開きます。
active FTPでは、サーバーは必要な接続を開きます。着信接続を受け入れることができる場合は、FTP経由でファイルを転送するための推奨される方法です。
wget
は一度に1つのファイルのみをダウンロードするため、2つの接続のみを使用する必要があります。接続が適切に閉じられていないようです。転送モードを「アクティブ」に設定すると問題が解決するかどうか試してください。
アクティブFTPを有効にするには、--no-passive-ftp
スイッチを使用します。
Wgetはそのように機能すると思います。過去にFTP経由でミラーリングする必要があったときは、lftp
を使用していました。
wget
は並列処理を行いませんが、接続が切断され、しばらくの間サーバーによってカウントされる可能性があります。
_--retry-connrefused --waitretry=30
_が役立つはずです。明確でない場合は、wget(1)
を見てみましょう。