Verzeichnisnamen durchsehen und behandeln

02/05/2010 - 19:52 von Jürgen Harter | Report spam
Hallo zusammen,

Ich habe hier ein Verzeichnis mit einer unbestimmten Anzahl an
Unterverzeichnissen. Diese haben Namen nach dem Muster YYYYMMDD-HHMM,
was den Zeitpunkt ihrer Erstellung reflektiert. Die Erstellung findet
unregelmàßig statt.

Ich möchte nun wiederkehrend per Shellskript diese Verzeichnisse
"behandeln", je nachdem, wie alt sie sind. Z.B. soll, wenn ein
Verzeichnis àlter als 14 Tage ist, und das nàchstàltere nicht mehr als 1
Monat àlter, dieses gelöscht werden. Das ganze wird für rotierende
Backups verwendet. Außerdem soll das jüngste Verzeichnis gefunden werden.

Einige Teilprobleme meine ich lösen zu können (wie z.B.
CURRENT_DATE_SUFFIX=`date +%Y%m%d-%H%M` oder das Abarbeiten der
einzelnen Namen mittels for-Schleife). Jedoch habe ich keine Idee, wie
ich das o.g. genau nàchstàltere Verzeichnis finden kann, wie ich das
allerjüngste Verzeichnis finde und auch, wie ich den Vergleich auf
Verzeichnisnamen (also nicht Dateinamen) beschrànke.

Ich wàre also sehr dankbar für Code-Anregungen! :-)

Grüße,
Jürgen
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
03/05/2010 - 16:14 | Warnen spam
Jürgen Harter wrote:

Ich habe hier ein Verzeichnis mit einer unbestimmten Anzahl an
Unterverzeichnissen. Diese haben Namen nach dem Muster YYYYMMDD-HHMM,
was den Zeitpunkt ihrer Erstellung reflektiert. Die Erstellung findet
unregelmàßig statt.

Ich möchte nun wiederkehrend per Shellskript diese Verzeichnisse
"behandeln", je nachdem, wie alt sie sind. Z.B. soll, wenn ein
Verzeichnis àlter als 14 Tage ist, und das nàchstàltere nicht mehr als 1
Monat àlter, dieses gelöscht werden. Das ganze wird für rotierende
Backups verwendet. Außerdem soll das jüngste Verzeichnis gefunden werden.



Hört sich nach einem Fall für logrotate(1) an.

Einige Teilprobleme meine ich lösen zu können (wie z.B.
CURRENT_DATE_SUFFIX=`date +%Y%m%d-%H%M` oder das Abarbeiten der
einzelnen Namen mittels for-Schleife). Jedoch habe ich keine Idee, wie
ich das o.g. genau nàchstàltere Verzeichnis finden kann, wie ich das
allerjüngste Verzeichnis finde und auch, wie ich den Vergleich auf
Verzeichnisnamen (also nicht Dateinamen) beschrànke.

Ich wàre also sehr dankbar für Code-Anregungen! :-)



find ... -type d ... | sort ... | while read ...; do ...; done

Statt `while read' kannst Du auch awk(1) & Co. nehmen.


HTH

PointedEars

Ähnliche fragen