Linux: Cleanup-Jobs mit IML CLEANUP

Donnerstag, 21. Juni, 2018

Wir verwenden Puppet als Werkzeug zum Verteilen unserer Server-Konfigurationen auf Linux-Systeme. Für das Löschen von Dateien älterer N Tage in einem Startordner haben wir oft mehrere angepasste Shell-Skripte mit einem Suchbefehl verwendet.

Das IML CLEANUP macht einfach eine Aufteilung von Logik- und Konfigurationsdaten. Es ist einfacher, eine kleine Konfigurationsdatei zu erzeugen (besonders, wenn Sie Automatisierungswerkzeuge wie Puppet, Ansible oder Chef verwenden) anstatt mehrere Bereinigungsskripte zu bearbeiten.

Man kann mehrere Konfigurationsdateien anlegen, die jeweils etwa so aussehen:

dir = /your/starting/path
filemask = *.log,*.gz
maxage = 180
maxdepth =
deleteemptydirs = 1
runas = root

Jene Angaben werden aus den Konfigurationen geparst und in Parameter des find-Kommandos übersetzt.

Wie man es zum Laufen bringt:

  1. In der Datei /etc/imlcleanup.d/ können Sie (beliebig viele) Konfigurationsdateien wie das obige Snippet ablegen.
  2. ein Shell-Skript durchläuft alle Konfigurationsdateien und führt die Aktionen aller conf-Dateien aus.
  3. Sie müssen zusätzlich einen Cronjob erstellen, um dieses Skript regelmäßig (z.B. einmal pro Tag) auszuführen.

Genaueres ist auf Github zu finden. Bitte auch die dortigen Security-Hinweise beachten.

weiterführende Links:

  1. Github: imlcleanup
  2. Docs: os-docs.iml.unibe.ch/imlcleanup/