【发布时间】:2022-01-06 22:33:17
【问题描述】:
我正在尝试从我的网站下载备份文件。我的剧本结构如下:
-
site_vars.yml保存我的变量:
website_backup_download:
- name: ftp://username:userpassword@ftp.mysite1.com/backups/mysite1backup.tgz
path: mysites/backups/www
- name: ftp://username:userpassword@ftp.mysite2.com/backups/mysite2backup.tgz
path: mysites/backups/www
- name: ftp://username:userpassword@ftp.mysite3.com/backups/mysite3backup.tgz
path: mysites/backups/www
- 实际下载器手册:
# Downloader
task:
- name: Download backups from FTP's
get_url:
url: "{{ item.name }}"
dest: "{{ item.path }}"
mode: 0750
no_log: false
ignore_errors: True
with_items:
- "{{ website_backup_download }}"
这实际上工作得很好,但是问题从大的备份文件开始,任务需要运行,直到备份文件被正确下载。
我无法重复完成未完成文件的任务。 :)
尝试了另一种解决方案,这也适用于单个站点,但不能用于多个下载:(
- name: Download backups
command: wget -c ftp://username:userpassword@ftp.mysite1.com/backups/mysite1backup.tgz
args:
chdir: "{{ down_path }}"
warn: false
register: task_result
retries: 10
delay: 1
until: task_result.rc == 0
ignore_errors: True
感谢您的帮助。
【问题讨论】:
-
关于“...问题始于大备份文件...”,您能否更详细地说明大的含义?关于“...任务需要一直运行,直到正确下载备份文件...”,您能否提供更多详细信息?这不是做的任务吗?任务运行多长时间?在什么时间之后留下“...未完成的文件或文件...”?在那个阶段会发生什么?有错误信息吗?
-
假设 mysite1backup.tgz 备份文件为 750 MB,另一个为 50 MB,另一个小于 50 MB。任务完成没有问题,完整下载所有文件,但除了一个,mysite1backup.tgz 部分下载了 400 或 550 MB。
-
运行时怎么样?任务运行多长时间?在什么时间之后留下“...未完成的文件或文件...”?
get_url模块有一个参数timeout。您可以执行一个增加值的简短测试。
标签: ansible download ftp wget large-files