Page 1 of 1
					
				find Problem
				Posted: 2008-06-29 12:15
				by simcen
				Hallo Zusammen
Mit dem kleinen Befehl
Code: Select all
find /opt/backup/db/ -type d -mtime +30 -exec rm -vrf '{}' ;
entferne ich alte Backup-Daten.
Die Daten werden auch sauber entfernt, erhalte aber jedes mal ein Fehler auf dem SystemErr:
find: /opt/backup/db/27-05-2008: No such file or directory
Tatsächlich ist dieser Folder auch nicht mehr da, da dieser ja vom find entfernt wurde.
Any ideas? Fehler in der Logik?
Danke für eure Unterstützung und Gruss
Simon
 
			
					
				Re: find Problem
				Posted: 2008-06-29 12:23
				by Roger Wilco
				Enthalten die einzelnen Verzeichnisse vielleicht noch Unterverzeichnisse, die von find erst nach dem Löschen des Elternverzeichnisses entfernen will? Hier hilft evtl. die Angabe von -maxdepth 1.
Je nach Anforderung könnte auch der find Parameter -delete für dich interessant sein.
			 
			
					
				Re: find Problem
				Posted: 2008-06-29 12:37
				by simcen
				Nein, in den Ordner liegen jeweils nur Files.
Hier noch den ganzen Outpout vom Find rot ist StdErr):
removed `/root/test/db/29-05-2008/12_urbanzone.sql.gz'
removed `/root/test/db/29-05-2008/15_janowsky.sql.gz'
removed `/root/test/db/29-05-2008/2_sagex_ch_1.sql.gz'
removed `/root/test/db/29-05-2008/10_gerhard-tschan_ch.sql.gz'
removed `/root/test/db/29-05-2008/simu_test.sql.gz'
removed `/root/test/db/29-05-2008/information_schema.sql.gz'
removed `/root/test/db/29-05-2008/2_sagex_ch_2.sql.gz'
removed `/root/test/db/29-05-2008/ispcp.sql.gz'
removed `/root/test/db/29-05-2008/8_lamaisonbleu_fr.sql.gz'
removed `/root/test/db/29-05-2008/9_hostsolution_gsales_old.sql.gz'
removed `/root/test/db/29-05-2008/roundcubemail.sql.gz'
removed `/root/test/db/29-05-2008/mysql.sql.gz'
removed `/root/test/db/29-05-2008/5_blog_simeli_org.sql.gz'
removed `/root/test/db/29-05-2008/8_lamaisonbleu_fr_dev.sql.gz'
removed `/root/test/db/29-05-2008/5_simeli_org.sql.gz'
removed `/root/test/db/29-05-2008/9_hostsolution_gsales.sql.gz'
removed `/root/test/db/29-05-2008/6_flouri_simcen_net.sql.gz'
removed `/root/test/db/29-05-2008/7_kochblog_dev.sql.gz'
removed directory: `/root/test/db/29-05-2008'
find: /root/test/db/29-05-2008: No such file or directory
-delete kannte ich noch nicht, danke für den Tipp!
 
			
					
				Re: find Problem
				Posted: 2008-06-29 12:43
				by simcen
				So, -delete ist tatsächlich einfacher :)
Code: Select all
find /opt/backup/db -mtime +30 -delete
Allerdings musste ich "-type d" entfernen.
Die Aktion "-delete" schaltet "-depth" sein, sprich die Aktion behandelt zuerst die Ordnerinhalte und dann erst das Verzeichnis selber und bei -delete müssen Verzeichnisse leer sein, bevor diese entfernt werden können.
Danke für die Hilfe und schönen Sonntag noch!
LG,
Simon
 
			
					
				Re: find Problem
				Posted: 2008-06-29 13:51
				by Joe User
				Mit xargs sollte ebenfalls kein Warning auftreten und auch Verzeichnisse mit Sonderzeichen erfasst werden, zudem sollte es etwas schneller zu Werke gehen:
Code: Select all
find /opt/backup/db/ -type d -mtime +30 -print0 | xargs -0 rm -vrf