Lunix Lunix@gmx.net (Sun Feb 13 13:55:30 2011):
Hallo liebe LUG,
Ich war bisher eher nur Leser aber nun hab ich doch mal einen Frage. Da eine meiner Festplatten immer wieder aussteigt und die Backupplatte vor 4 Tagen auch das zeitliche gesegnet hat benötige ich dringend Hilfe. Die defekte Platte beherbergt alle Fotos die ich habe. Solang ich jedes Foto einzeln über die Konsole auf eine andere Platte kopiere funktioniert es auch aber sobald sie viele Lesezugriffe nacheinander abarbeiten muss steigt sie aus (z.B. wenn ich einen ganzen Ordner kopieren will).
Da ich mich mit dem Programmieren von Scripten nicht auskenne hier meine Frage:
Wäre jemand so nett mir ein Script zu schreiben das folgendes macht:
- es soll die Bilder alle einzeln kopieren
- jedes mal wenn ein Bild kopiert wurde soll eine Pause von 10
Sekunden erfolgen bis das nächste Bild kopiert wird
Wenn mir jemand so ein Script schreiben könnte wäre ich ihm unendlich dankbar. Denn ich habe keine Ahnung wie lang die Platte noch mit macht und bei 30 GB Fotos würde es Tage dauern wenn ich alles händisch machen müsste.
Mit je 10s Pause kann es auch für die Platte eher Ende sein als für die Kopieraktion.
Ohne Script könntest Du versuchen, rsync zu nutzen und mit der --bwlimit Option was anstellen. Ich *glaube*, die gilt auch für lokale Aktionen, zumindest lt. Manpage ist die Rede von I/O rate, nicht von Network.
Alternativ sowas wie (in der Bash, bei anderen Shells ist vielleicht anderes Quoting notwendig):
find /my/fotos/ -type f \ ( -exec cp --parents --verbose {} /mnt/new/ ; -o -exec true ; ) \ -exec sleep 10 ;
Ist ja noch kein Script, sollte es aber tun. (Sieht etwas umständlich aus, aber ich wollte die Pause immer haben, auch wenn cp schief geht, und ich wollte keine Shell benutzen, da das zu Problemen bei wirren Dateinamen führen könnte, deshalb 3x -exec.)