天天看點

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 }}"      

繼續閱讀