Page 1 of 1

Dateien per Batchskript löschen

Posted: 2008-01-15 00:34
by bonanza
Hi, ich habe ein Backupsskript welches mir jeden Tag einen Ordner mit Datum im Namen anlegt:

/root/backup.20080114/

Der Inhalt dieser Ordner sieht eigentlich immer so aus (Die Ziffern können varieren):

usr_web6_1.dump.bz2
usr_web8_1.dump.bz2
web1.tar.bz2
web8.tar.bz2

Alle 2 Tage will ich nun die alten Backups (also Ordner samt Inhalt) löschen. Angedacht hatte ich dies:

# Alle Backups die Aelter wie 2 Tage sind loeschen
find /root/ -ctime +2 -name 'backup*.*' -delete;

Google hat mir nun migeteilt, das find nich rekursiv über Ordner funktioniert. Jemand einen Tip für mich wie ich das auf die Reihe bekomme :-) ? Danke!

Re: Dateien per Batchskript löschen

Posted: 2008-01-15 00:40
by Joe User

Code: Select all

find /root -mtime +2 -type d -name backup.* -print0 | xargs -0 rm -rf

Re: Dateien per Batchskript löschen

Posted: 2008-01-15 12:26
by bonanza
Super danke - da ich das Geschriebene auch verstehen und nicht nur abtippen will, daher hier meine Zusammenfassung und die frage ob ich es richtig verstehe :-)

Ich suche per find im Ordner root nur nach Verzeichnisen die älter sind wie 2 tage und mit dem namen backup.platzhalter beginnen. Soweit denke ich richtig. Für was steht aber der Teil hier "-print0 | xargs -0" ?
Das rm -rf steht ja denke ich für rekursives Löschen von files (f)?

Grüße und Danke!

Re: Dateien per Batchskript löschen

Posted: 2008-01-15 14:48
by Joe User
"rm -rf" steht für "Read Manpages Realy Fast" ;)

man find
man xargs
man rm

Den Rest hast Du richtig verstanden.