• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Datei in Shellscript nach Datum filtern

Hallo,

ich habe ein kleines Problem und bräuchte einen Rat von erfahren Shellscriptern.
Also, ich mache täglich Datensicherungen per tar auf ein DVD-Ram.
Jeden Wochentag wird ein neues Medium eingelegt. Der tar-String schaut folgendermaßen aus ...

tar -cvf /media/dvdram/backup`date +%d%m%g`.tar /daten

Nun suche ich nach einer Möglichkeit die Dateien nach dem Datumsstring zu filtern, damit ich die älteste Datei auf dem Medium per Script löschen kann.

Danke erstmal
Bernd[/i][/code]
 

regexer

Advanced Hacker
Bewo-online schrieb:
tar -cvf /media/dvdram/backup`date +%d%m%g`.tar /daten

Nun suche ich nach einer Möglichkeit die Dateien nach dem Datumsstring zu filtern, damit ich die älteste Datei auf dem Medium per Script löschen kann.
Code:
rm `ls -t /media/dvdram/backup* | tail -1`
"ls -t" zeigt Dateien an und sortiert nach dem Datumstempel der letzten Dateiänderung. Das düfte in deinem Fall mit dem Datum im Dateinamen identisch sein. "tail -1" beschränkt die Ausgabe auf die letzte Zeile - und damit auf die älteste Datei. "rm" löscht diese Datei.

Es ist etwas ungünstig, dass du als Datum das Format tag-monat-Jahr genommen hat. Hätte man Jahr-Monat-tag verwendet, würde ein ein einfacher ls reichen (der einfach nur alphabetisch sortiert).
 
OP
B

Bewo-online

Newbie
Ja, dein Ansatz hört sich gut an.
Ich möchte allerdings immer mindestens ein Archiv auf dem Medium lassen. Das heißt ich muss vorher prüfen ob mindestens zwei existieren.
Mit - if -e /medium/dvdram/backup* usw - kann ich feststellen ob wenigsten eine existiert, aber eben leider nur eine.

Hast du eine Idee wie ich das Medium auf mindesten zwei gesicherte Dateien prüfen kann.

Gruß
Bernd
 
Oben