Dateien mit Ausnahme der aktuellste löschen

T

theawak3r

Hallo liebe Community ich habe an eine Frage an euch. Ich versuche grad ein Shell zu basteln und erhoffe mir diesbezüglich Hilfe von euch.

Ein von mir betriebener Server mache täglich in der Nacht Backups von diversen Ordnern und schiebt diese auf im Raid1 Verbund betriebene Platten. Ich möchte allerdings lediglich die Backups der letzten 5 Tage sichern und den Rest automatisch löschen lassen. Kann mir jemand einen Tipp geben, wie ich zum Beispiels mittels "find" alle Dateien mit Ausnahme der 5 aktuellsten finden kann?

Viele Dank schonmal im vorraus und viele Grüße..
 
So aus dem Stehgreif heraus:
Code:
find -type f -printf '%T@ %p\n' | sort -n | tail -5 | cut -d ' ' -f 2-
- find listet als 1. Wort die MTime als Unixtime, danach den Dateinamen mit Pfad
- sort sortiert nach MTime
- tail liefert die letzten 5 Zeilen
- cut schneidet die MTime wieder ab


EDIT: Ups, Du wolltest es umgekehrt, da musst Du nur tail entsprechend korrigieren.
 
Zuletzt bearbeitet:
find hat selber switches für -mtime, -atime, -ctime. Damit sollte die Geschichte noch einfacher zu lösen sein:

Code:
find . -type f -mtime +5 -delete
 
Jupp, der löst gleich das gesamte Problem. Da bin ich schön am Ziel vorbei geflogen. :O
 
Hast Du schon von rsnapshot gehoert, einem komfortablen Backup-Skript, das auf rsync aufbaut? Dort kannst Du leicht konfigurieren, dass Du nur die letzten 5 Tage sichern moechtest. Ausserdem mact es inkrementelle Backups und spart so viel Plattenplatz.
 

Ähnliche Themen

Textdatei filtern und löschen mit grep /sed

Bestimmte Dateien aus vielen Unterordnern löschen

Dateien mit Leerzeichen löschen

Mein Script looped

mit find den Inhalt von Dateien löschen

Zurück
Oben