ansible-playbook脚本-从被管理机收集指定日期标识的文件

版本一和版本二获取dt变量的方式不通。

版本一(测试调试版本):注意:dt.stdout 标准输出

stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。

---                       #固定格式
- hosts: 192.168.1.233   #定义需要执行主机
  remote_user: root       #远程用户
  vars:                   #定义变量
    http_port: 8088       #变量
    dt: date '+%m-%d' -d '-2 day'
  tasks:                             #定义一个任务的开始
    - name: 获取时间
      shell: date '+%m-%d' -d '-3 day'
      register: dt
    - name: 查找文件
      find:
        paths: /tools/cron_backup/
        patterns: "*{{ dt.stdout }}.tar.gz"
        recurse: no
      register: file_2_fetch

    - name: 获取文件
      fetch:
        src: "{{ item.path }}"
        # dest: /tools/all_cron_backup/
        dest: /tools/lxjtest/
        flat: yes
      with_items: "{{ file_2_fetch.files }}"
    - name: 显示
      shell: echo "1:" {{ file_2_fetch.files }} >> /root/lxjtest.txt && echo "2:" {{ dt.stdout }} >> /root/lxjtest.txt 

方式二:命令行-e 指定变量

ansible-playbook /etc/ansible/playbook/get_all_cron_bak.yml -e dt=`date '+%m-%d' -d '-3 day'` -e localpath= $localpath`date +%Y-%m-%d`

---                       #固定格式
- hosts: idc   #定义需要执行主机
  remote_user: root       #远程用户
  vars:                   #定义变量
  tasks:                             #定义一个任务的开始
    - name: 查找文件
      find:
        paths: /tools/cron_backup/
        patterns: "*{{ dt }}.tar.gz"
        recurse: no
      register: file_2_fetch

    - name: 获取文件
      fetch:
        src: "{{ item.path }}"
        # dest: /tools/all_cron_backup/
        dest: "{{ localpath }}"
        flat: yes
      with_items: "{{ file_2_fetch.files }}"


上一篇:Shell 数值、字符串比较


下一篇:postgresql双机热备(流复制)及主备切换