使用rsync同步文件

参数

  • archive:是否进行归档,默认为yes,相当于同时开启recursive,links,perms,times,owner,group -D等选项
  • checksum:是否校验和
  • copy_links:是否复制链接文件
  • delete:删除源中没有而目标存在的文件
  • dest_port: 对方用于接收的端口
  • dirs: 非递归传输目录
  • mode:模式,推和拉模式, push | pull ,默认为push(推)
  • src:同步的数据源的位置
  • rsync_opts: 指定rsync的选项,多个选项可以用逗号分隔
  • dest:目标文件
  • compress: 默认为yes,表示在文件同步过程中是否启用压缩

例子

rsync 传输文件
ansible test -m synchronize -a ‘src=/etc/yum.repos.d/epel.repo dest=/tmp/epel.repo’ -k

类似于 rsync —delete
ansible test -m synchronize -a ‘src=/tmp/123/ dest=/tmp/456/ delete=yes’ -k

同步文件,添加rsync的参数-avz,并且排除passwd文件
ansible test -m synchronize -a ‘src=/tmp/123/ dest=/tmp/test/ rsync_opts=”-avz,—exclude=passwd”‘ -k

把远程的文件,拉到本地的/tmp/123/目录下
ansible test -m synchronize -a ‘src=/tmp/test/abc.txt dest=/tmp/123/ mode=pull’ -k

从远程主机拉取目录
ansible ysj-app-all -m synchronize -a “src=/data/logs/tlog/2019-05-25 dest=/root/tlog/{{inventoryhostname}}/ mode=pull”
ansible ysj-01 -m synchronize -a “src=/data/logs/twlogs/2019-05-22
{{ansible_ssh_host}} dest=/root/twlogs/{{inventory_hostname}}/ mode=pull”