You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible批量下载FTP大体积备份文件断点续传实现问题咨询

Ansible多站点备份断点续传批量下载实现方案

方案1:复用现有变量+循环调用wget(兼容性最强)

原有site_vars.yml的变量配置无需修改,直接调整下载任务逻辑,将单站点wget逻辑和你的批量变量做绑定即可,任务代码如下:

- name: 批量下载多站点备份(支持断点续传+自动重试)
  command: "wget -c {{ item.name }}"
  args:
    chdir: "{{ item.path }}"
    warn: false
  register: download_result
  retries: 10
  delay: 3
  until: download_result.rc == 0
  ignore_errors: true
  with_items: "{{ website_backup_download }}"

相关说明:

  • 直接循环你预先定义的website_backup_download列表变量,自动匹配每个站点的下载地址和存储路径,无需额外调整变量
  • wget的-c参数实现断点续传,网络中断恢复后会从已下载的片段继续传输,不会重新下载完整文件
  • 可根据备份文件大小调整重试参数,大体积文件建议将delay调整为5-10秒,避免短时间频繁重试

方案2:Ansible原生get_url模块实现(无额外依赖)

如果目标主机不想额外安装wget,可升级Ansible到2.8及以上版本,使用get_url模块自带的断点续传参数实现,任务代码如下:

- name: 批量下载多站点备份(get_url原生实现)
  get_url:
    url: "{{ item.name }}"
    dest: "{{ item.path }}"
    mode: '0750'
    resume: yes
    timeout: 60
  no_log: false
  ignore_errors: true
  register: download_result
  retries: 10
  delay: 3
  until: download_result is succeeded
  with_items: "{{ website_backup_download }}"

相关说明:

  • get_url的resume: yes参数为原生断点续传能力,效果和wget的-c参数一致
  • 任务级的until判断会自动重试下载失败的站点,直到执行成功或者达到设置的重试次数上限

内容的提问来源于stack exchange,提问作者theadmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:24:03