From 954853e3fcabdeac4b18f15dc2bec2213fcf800d Mon Sep 17 00:00:00 2001 From: chris Date: Tue, 23 Nov 2021 14:20:28 +0100 Subject: [PATCH] Store weekly, monthly and yearly backups and clean originals. --- semaphore.yaml | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/semaphore.yaml b/semaphore.yaml index 9907a2d..a665a10 100644 --- a/semaphore.yaml +++ b/semaphore.yaml @@ -7,7 +7,7 @@ tasks: - include_vars: vars/semaphore/variable.yaml - - name: Search for backup directories + - name: Search for volume's backup directories become: yes find: paths: "{{ local_backup }}" @@ -61,6 +61,36 @@ loop_control: label: "{{ item.path }}" + - name: Store the yearly backups + copy: + remote_src: true + src: "{{ item.path }}" + dest: "{{ item.path | dirname }}/yearly/{{ item.path | basename }}" + with_items: "{{ backup_files.results | map(attribute='files') | list }}" + when: (ansible_date_time.day == "01" and ansible_data_time.month == "01") + loop_control: + label: "{{ item.path }}" + + - name: Store the monthly backups + copy: + remote_src: true + src: "{{ item.path }}" + dest: "{{ item.path | dirname }}/monthly/{{ item.path | basename }}" + with_items: "{{ backup_files.results | map(attribute='files') | list }}" + when: (ansible_date_time.day == "01" and ansible_data_time.month != "01") + loop_control: + label: "{{ item.path }}" + + - name: Store the weekly backups + copy: + remote_src: true + src: "{{ item.path }}" + dest: "{{ item.path | dirname }}/weekly/{{ item.path | basename }}" + with_items: "{{ backup_files.results | map(attribute='files') | list }}" + when: (ansible_date_time.weekday_number == "1") + loop_control: + label: "{{ item.path }}" + - name: Store the daily backup copy: remote_src: true @@ -70,3 +100,11 @@ when: (ansible_date_time.weekday_number != "1" and ansible_date_time.day != "01") loop_control: label: "{{ item.path }}" + + - name: Cleanup original backup files + file: + path: "{{ item.path }}" + state: absent + with_items: "{{ backup_files.results | map(attribute='files') | list }}" + loop_control: + label: "{{ item.path }}"