• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Kopieren ohne Verlustrisiko

peters1

Châtaigne du Léman
Registriert
15.07.09
Beiträge
832
Hallo,
ich habe mir eine kleine Batchdatei generiert, die mit dem Befehl MV (move) Dateien von einer Platte auf eine andere verschiebt. Leider bricht ab und zu die Verbindung (USB) zur Platte ab. Dadurch verliere ich i.d.R. 5 - 6 Dateien. Ich vermute, die Kopieraktion ist im Cache und soll noch ausgeführt werden. Für das OS ist der Job abgeschlossen und es wird das Original gelöscht. Allerdings kann bei fehlender Verbiindung nicht mehr geschrieben werden, so dass im Original die Dateien gelöscht sind, auf dem Ziellaufwerk aber nicht geschrieben wurden.

Gibt es eine Option, die das verhindert? Oder einen anderen Befehl, der wirklich nur dann löscht, wenn erfolgreich auf das Ziellaufwerk geschrieben wurde?
 
Normalerweise sollte das bei mv nicht passieren. mv nutzt in deinem Fall cp und rm. Aus der Manpage:

"As the rename(2) call does not work across file systems, mv uses cp(1) and rm(1) to accomplish the move."

Aber nun gut.

Anstatt nach einer anderen Verschiebeaktion zu suchen, würde ich versuchen, die Ursache des Problems zu lösen:

Hat die Platte eine zu schwache Stromversorgung?
Nutzt du ein schlechtes/zu langes USB-Kabel oder einen schlechten Hub?
 
Was spricht dagegen, erst einmal alles zu kopieren, meinetwegen mit Abfrage des Returncodes, und wenn das ok ist, alles zu löschen?
 
Was spricht dagegen, erst einmal alles zu kopieren, meinetwegen mit Abfrage des Returncodes, und wenn das ok ist, alles zu löschen?
Ich möchte ein Wiederaufsetzt-Script. Sollte etwas passieren, brauche ich es nur noch einmal zu starten und es sollte dort weitermachen, wo es aufgehört hat. Wenn MV eine EInheit wäre kein Problem. So müsste ich auch die letzte Datei auf Datenintegrität testen.
 
Hat die Platte eine zu schwache Stromversorgung?
Nutzt du ein schlechtes/zu langes USB-Kabel oder einen schlechten Hub?
Ich habe beide Platten direkt am USB3-Port des MacBook Air. Sollte ausreichen (sind 2,5-Zöller). Trotzdem haben die manchmal Probleme.
 
Ich habe beide Platten direkt am USB3-Port des MacBook Air. Sollte ausreichen (sind 2,5-Zöller). Trotzdem haben die manchmal Probleme.

Hast du sie gleichzeitig an den jeweiligen Ports laufen? Wenn sie jeweils einzeln fehlerfrei (oder mit zusätzlicher Stromversorgung, ggf. durch einen aktiven Hub) laufen, könnte dies die Ursache sein:

Ich könnte mir vorstellen, dass das für das MBA zu viel ist. Das wären bis zu 1,8 Ampere, also schlimmstenfalls bis zu 9,9 Watt.
 
cp -f <irgendwas> <irgendwo> && rm -f <irgendwas>
Schlägt die Kopie fehl (beendet mit Returnwert != 0 ), wird so nichts gelöscht.
 
  • Like
Reaktionen: peters1
Ich dachte, dass mv genau so arbeitet.
 
Es können, so glaube ich, trotzdem Verluste eintreten, wenn der Strom nicht reicht und der Schreibcache aktiviert ist. Wenn die Daten im Schreibcache der Platte angekommen sind, gibt es ein OK, bevor sie weggeschrieben sind. Wenn dann der Strom zum Wegschreiben nicht reicht, sind sie futsch.
 
Hast du sie gleichzeitig an den jeweiligen Ports laufen? Wenn sie jeweils einzeln fehlerfrei (oder mit zusätzlicher Stromversorgung, ggf. durch einen aktiven Hub) laufen, könnte dies die Ursache sein:

Ich könnte mir vorstellen, dass das für das MBA zu viel ist. Das wären bis zu 1,8 Ampere, also schlimmstenfalls bis zu 9,9 Watt.
Ich habe Sie an den beiden USB-Ports, jeder an einem. Da ich das Zeug auf Reisen nutze, möchte ich so wenig wie möglich mitschleppen. Daher auch 2,5-Zöllrt, die aus dem MB versorgt werden.