Zum Inhalt springen
  • 0

Ansible löschen nach Datumsangabe


Gast deRoOx

Frage

Hey,

ich stehe vor folgendem Problem:
Ich möchte mit Ansible Backups in Ordnern speichern. Diese Ordner bekommen das aktuelle Datum als Namen.
Diese möchte ich dann später löschen, wenn Sie älter als X Tage sind.

Sprich immer wenn ich das Playbook ausführe, sollen alle Ordner an diesem Pfad gelöscht werden, die älter als Tag X sind.
Hat jemand eine Idee, wie ich das hinbekomme?

Erstellt werden die Ordner nach folgendem Muster: (Erstmal nur das erzeugen der Datei, mit dem kopieren klappt es ja aber nach dem gleichen Prinzip später)

---
- hosts: server_debian
  become: yes
  tasks:
    - name: Ordner mit Datumsname anlegen
      file:
        path: /etc/Datum/{{ ansible_date_time.date }}
        state: directory
        force: no
        
    - name: backup-file mit Uhrzeit anlegen
      file:
        path: /etc/Datum/{{ ansible_date_time.date }}/{{ ansible_date_time.time }}
        state: touch


Ich hatte mir erstmal die Lösung zurecht gebastelt, aber die löscht dann nur alle Ordner die wirklich 14 Tage alt sind und nicht älter:
 

---
- hosts: server_debian
  become: yes
  tasks:
    - set
  
    - name: Datum
      file:
        path: /etc/Datum/{{ '%Y-%m-%d' | strftime( ( ansible_date_time['epoch'] | int ) - ( 86400 * 14 )  ) }}
        state: absent

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Empfohlene Beiträge

  • 0

Versuchs mal mit dem Modul "find" + dem Parameter "age".

Siehe hier: https://docs.ansible.com/ansible/2.3/find_module.html
-> "Select files whose age is equal to or greater than the specified time"

Und eine praktische Anwendung hier: https://stackoverflow.com/questions/45855743/double-conditional-delete-all-folders-older-than-3-days-but-keep-a-minimum-of/45857847
(etwas anderer Fall, aber von der Syntax her vergleichbar)

Sollte dann in etwa sowas hier sein:

---
- hosts: all
  tasks:
    - name: find all files that are older than three days
      find:
        paths: "/path/to/folder/"
        age: "3d"
        file_type: directory
      register: dirsOlderThan3d
    - name: remove older than 3 days
      file:
        path: "{{ item.path }}" 
        state: absent
      with_items: "{{ (dirsOlderThan3d.files }}

(schnelles c+p ;) keine Garantie für Funktionalität)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...