Archiv » SSH / Bash / SHELL » Linux Bash - Dateien älter...
Linux Bash - Dateien älter als X Tage finden und löschen
Auf meinem Managed- oder Rootserver mit einem Linux-Betriebssystem lassen sich per Konsole / Terminal zahlreiche Aktionen ausführen. Unter anderem laufen bei Backups die Festplatten bzw. RAID-Systeme schnell über und Abhilfe schafft ein automatisierter Prozess, der Backups (Dateien) älter 14, 30 oder 90 Tage aus einem Verzeichnis löscht.
Genutzt wird der "find"-Befehl, um Dateien ausfindig zu machen, welche älter als ein bestimmtes Datum sind. Als "Befehl" geben wir noch "-exec" mit, um das Löschen der Dateien durchzuführen.
Das unten gezeigte Beispiel löscht alle "*.tar.gz"-Dateien, die älter als 30 Tage sind. Die Eigenschaft (Option) "-ctime" wird in Tagen angegeben. Die Werte können variieren (14, 30, 90, ... Tage).
Mit "-maxdepth" geben wir an, dass nur das aktuelle Verzeichnis durchsucht werden soll. (Zwei Verzeichnis vom Root aus) Bei rekursiver Tiefe, kann es schnell zum Löschen von Linux-Systemdaten führen.
#Löscht per "rm" alle "*.tar.gz" Dateien #im Ordner "/backup/www-files/", die älter als 14 Tage sind: find -P "/backup/www-files/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +14 -exec rm {} \;

