我想下载一个带有ansible(10 GB)的大文件。根据连接,这需要半个小时,并且经常使用unarchive或get_url失败。
如果出现错误和一些进展,我怎样才能在理想情况下恢复?
答案 0 :(得分:3)
我认为在Ansible的任务中没有任何方法可以取得进展
您可以使用dependencies {
......
compile 'com.android.support:support-v4:VERSION'
compile 'com.android.support:appcompat-v7:VERSION'
compile 'com.android.support:recyclerview-v7:VERSION'
compile 'com.android.support:support-v13:VERSION'
.....
}
模块手动下载多个块,在with_sequence
loop中使用command
选项启动curl
,这将是一种进度显示。 />
(您也可以使用--range
模块和uri
来获取文件大小,以计算卷曲调用循环中使用的范围)
如果出现错误,请继续do-until loop syntax。
答案 1 :(得分:0)
通常ra time_out
值可以在get_url中执行。
试着把它拉到1800秒。
如果它不起作用我建议使用归档程序将文件分成块(我使用7Zip - 7-zip-split-archive)
答案 2 :(得分:0)
使用带有wget及其“ --continue”参数的命令模块来继续下载部分下载的文件,并对任务进行多次重试吗?
答案 3 :(得分:0)
为此,您可以使用async
,在下面的示例中,我们使用get_url
和async
选项一起下载大文件,然后等待下载作业完成使用async_status
模块
- name: Get the tar file from the repo
get_url:
url: "{{ hdf_patch_repo_url }}/{{ hdf_tar_name }}"
dest: "{{ hdf_patch_local_path }}/{{ hdf_tar_name }}"
owner: xxxx
group: xxxx
mode: 0755
async: 6000
poll: 0
register: hdf_patch_download_result
- name: check status of HDF tar file download
async_status:
jid: "{{ hdf_patch_download_result.ansible_job_id }}"
register: hdf_patch_download_job_result
until: hdf_patch_download_job_result.finished
retries: 300