大きなファイルをダウンロードしたいと思います(10 GB)。接続によっては30分かかり、unarchiveまたはget_urlで失敗することがよくあります。大きなファイルを入手するには
エラーが発生して進行状況が変わった場合に、どのように再開するのが理想的ですか?
大きなファイルをダウンロードしたいと思います(10 GB)。接続によっては30分かかり、unarchiveまたはget_urlで失敗することがよくあります。大きなファイルを入手するには
エラーが発生して進行状況が変わった場合に、どのように再開するのが理想的ですか?
- それは私がアーカイブプログラムを使用してチャンクにファイルを分割することをお勧め動作しない場合
(7-zip-split-archive私は7zipをを使用します)。
複数のチャンクでcommand
モジュールを使用して--range
オプションを使用してcurl
を起動すると、with_sequence
loopに手動でダウンロードできます。これはプログレスディスプレイのようなものです。
は、エラーの場合に再開するために
(あなたはまた、カール呼び出しにループ内で使用する範囲を計算するために、ファイルのサイズを取得するためにmethod: HEAD
でuri
モジュールを使用することができます)、do-until loop syntaxがあります。
通常、get_urlでは値を使用しています。 それを1800秒に上げてみてください。私はAnsibleでタスク内の進捗状況を取得する方法があるとは思わない
1.私はファイルのサイズに影響を与えることはできません。タイムアウトを起こすだけで、失敗した場合に再開することはできません。進行状況もget_urlでは表示されません。だから、この答えは質問から私のニーズを満たしていません。 – teclis
この[ソース](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
しかし、まだ進行状況を示すために何かが必要です。 – teclis