Dateien per Batchskript löschen

Bash, Shell, PHP, Python, Perl, CGI
bonanza
Posts: 39
Joined: 2003-07-12 14:26

Dateien per Batchskript löschen

Post by bonanza » 2008-01-15 00:34

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!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Dateien per Batchskript löschen

Post by Joe User » 2008-01-15 00:40

Code: Select all

find /root -mtime +2 -type d -name backup.* -print0 | xargs -0 rm -rf
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

bonanza
Posts: 39
Joined: 2003-07-12 14:26

Re: Dateien per Batchskript löschen

Post by bonanza » 2008-01-15 12:26

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!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Dateien per Batchskript löschen

Post by Joe User » 2008-01-15 14:48

"rm -rf" steht für "Read Manpages Realy Fast" ;)

man find
man xargs
man rm

Den Rest hast Du richtig verstanden.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.