2017-12-23 9 views
0

大きなファイルをダウンロードしたいと思います(10 GB)。接続によっては30分かかり、unarchiveまたはget_urlで失敗することがよくあります。大きなファイルを入手するには

エラーが発生して進行状況が変わった場合に、どのように再開するのが理想的ですか?

+0

この[ソース](https://ilovesymposia.com/2013/04/11/automatically-resume-interrupted-downloads-in-osx-with-curl/)によれば、シェルで次のコマンドを使用できます。輸出ec = 18; while [$ ec -eq 18];/usr/bin/curl -O -C - "http://www.example.com/a-big-archive.zip"を実行します。 export ec = $?; done – teclis

+0

しかし、まだ進行状況を示すために何かが必要です。 – teclis

答えて

2

- それは私がアーカイブプログラムを使用してチャンクにファイルを分割することをお勧め動作しない場合

7-zip-split-archive私は7zipをを使用します)。
複数のチャンクでcommandモジュールを使用して--rangeオプションを使用してcurlを起動すると、with_sequence loopに手動でダウンロードできます。これはプログレスディスプレイのようなものです。
は、エラーの場合に再開するために

(あなたはまた、カール呼び出しにループ内で使用する範囲を計算するために、ファイルのサイズを取得するためにmethod: HEADuriモジュールを使用することができます)、do-until loop syntaxがあります。

0

通常、get_urlでは値を使用しています。 それを1800秒に上げてみてください。私はAnsibleでタスク内の進捗状況を取得する方法があるとは思わない

+0

1.私はファイルのサイズに影響を与えることはできません。タイムアウトを起こすだけで、失敗した場合に再開することはできません。進行状況もget_urlでは表示されません。だから、この答えは質問から私のニーズを満たしていません。 – teclis

関連する問題