質問: 複数のftpディレクトリの高速ダウンロード ネストされたディレクトリの数が非常に多いftpサーバーがあります。ディレクトリ全体を再帰的にダウンロードする必要があります。ディレクトリの数が非常に多いため(ほとんどの場合、ファイルは1つしかない)、ダウンロードは制限されているようです。私の2つのアプローチ filezillaの使用(複数の並列接続あり) zip形式のディレクトリをホストから直接ダウンロードします すべてが数kb/sの非常に遅いダウンロード速度につながります。この速度では、すべてのファイルをダウンロードするのに5日かかります...これはオプションではありません。ftpディレクトリ全体をできるだけ速くダウンロードするにはどのような可能性がありますか?
回答: ftpは、深いネストされたディレクトリをコピーするために好まれるプロトコルではないため、サーバー側ですべてのファイルを1つのファイルにパックする方法を見つけようとしました。次のようなコマンドでsshコンソールを使用するためにファイルをパックする1つの可能性zip -r <username>/backup_29_08_12.zip<username> 私が提供したものはそのような接続を許可しないので、私の場合、これは不可能でした。私のプロバイダーはpearパッケージ archive_tar の使用を許可していることがわかりました。結果は、ファイルをパックするphp sciptです。<? @error_reporting(e_all ^ e_warning); @ini_set("max_execution_time", 0); @ini_set("memory_limit", "-1"); $directory = ""; $ignore = array("*.sql.gz", "*.tar.gz"); $path = preg_replace('/(\/www\/htdocs\/\w+\/).*/', '$1', realpath(__file__)); include "archive/tar.php"; $archivename = preg_replace('/.+\/(.+)\/$/', '$1', $path).date('_y-m-d_his').".tar.gz"; $archive = new archive_tar($archivname, true); $archive->setignorelist($ignore); $archive->createmodify($path.$directory, "", $path); echo "backup done"; ?> chmod 0777のフォルダーでこのスクリプトを呼び出すには、約30分かかりました。その後、ダウンロード速度を制限することなく、パックされたファイルをダウンロードできました。