Veröffentlicht 1. Oktober 200718 j Hi, ich bräuchte nur ein kleines Shellskript zum Backup eines Ordners. Bis jetzt sieht das ganze so aus : #!/bin/bash rsync -avz root@xxx.xxx.xxx.xxx:/var/hier_liegt_mein_original/* /var/hier_liegt_mein_backup/ for i in `/var/hier_liegt_mein_backup/` ; do if [ $i älter als x Monate ] rm `/var/hier_liegt_mein_backup/`+$i ; fi done Das Skript sollte eigendlich nichts anderes machen, als den RSYNC ausführen und danach zu alte Dateien löschen. 1. Weiß ich nicht wie ich die "älter als"-Abfrage durchführen kann. 2. Bin ich mir nicht sicher ob die Zeile "rm `/var/hier_liegt_mein_backup/`+$i ;" so erlaubt ist.
1. Oktober 200718 j Hi, rsync kann auch deleten. Guck dir mal die Optionen an. Ansonsten würde ich dir find +mtime empfehlen, das ist meiner Meinung nach das Einfachste: Suche nach der Zeit mit find und mtime Mit Exec kannst du dann auf die gefundenen Dateien ein Kommando ausführen, in deinem Fall eben rm. Vorher evtl. mal mit ls anzeigen lassen, ob das auch die gewünschten Dateien sind, sonst kann es schonmal Ärger geben.
1. Oktober 200718 j Autor Für exec würde ich ja wieder php nutzen. Geht das überhaupt nicht per Shellskript.
1. Oktober 200718 j Hi, doch, man kann sich da was zusammenstricken. Aber wieso willst du selber was basteln, wenn es doch Standardwerkzeuge gibt, die das Problem eleganter, schneller und richtiger lösen? Exec ist eine Option im Find. Von PHP lese ich jetzt hier das erste Mal etwas.
1. Oktober 200718 j find /home/lupo49/ -name "foo.*" -mtime -40 | xargs rm Wobei 40 die Zeit in Minuten ist.
1. Oktober 200718 j Hi, xargs? Wieso nicht rm im exec wie carstenj gesagt hat? Ne pipe ist unnötig. ciao, vic
1. Oktober 200718 j Weil mit -exec bei sehr vielen tausend Dateien die Performance in die Knie geht! Die xargs-Variante ist Faktor 15x schneller.
1. Oktober 200718 j Weil mit -exec bei sehr vielen tausend Dateien die Performance in die Knie geht! Die xargs-Variante ist Faktor 15x schneller. Genauer: Wenn du -exec verwendest, wird fuer jedes Loeschen einer Datei ein neuer Prozess erzeugt. Das ist ziemlich unperformant und wirkt sich bei vielen Dateien recht negativ aus. Das Programm xargs bastelt dir dynamisch den Parameter (die Dateien die geloescht werden sollen) zusammen und uebergibt ihn an rm. So das du mit einem einzigen rm-Prozess alle Dateien geloescht bekommst.
1. Oktober 200718 j Hi, alright - stimmt, ne gute Sache. Muss aber auch auf die Nachteile achten: iX 7/2001, S. 164: GNU-Tips ciao, vic
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.