使用 netcat 和 Ansible 进行远程备份

使用 netcat 和 Ansible 进行远程备份

我尝试使用 Ansible 备份我的服务器。我的设置如下:

SERVER 1..n(我想要备份的数据)
ANSIBLE_HOST(在此服务器上,我的 Ansible 备份剧本由 cron 作业执行)
BACKUP_STORE(在此服务器上存储了我的备份)

现在我尝试使用 netcat 将文件发送SERVER xBACKUP_STORE我的 Ansible 任务,如下所示:

- shell: >
    nc -l {{ port }} > {{ backup_file }}.tar.bz2
  async: 1000
  poll: 0
  register: receiver
  delegate_to: "{{ BACKUP_STORE_IP }}"

- shell: >
    tar -cvpj --one-file-system {{ folder }} | nc -q 0 {{ BACKUP_STORE_IP }} {{ port }}

- async_status:
    jid: "{{ receiver }}"
  register: job_result
  until: job_result.finished
  retries: 30
  delegate_to: "{{ BACKUP_STORE_IP }}"

当我自己在两台服务器上执行 shell 命令时,这 100% 的时间都有效。但是如果我用这个 Ansible 脚本运行它们,大约 50% 的时间BACKUP_STORE会创建备份文件,但它是空的(0 字节)。

通过 Ansible 运行时数据无法传输的原因可能是什么?或者还有其他方法,发送文件而不在文件系统上写入存档SERVER x

相关内容