Ich verschiebe gelegentlich viele Dateien (50+ GB) von einer Festplatte auf eine andere über mein LAN. Das dauert eine Weile. Wenn es ein Problem mit einer bestimmten Datei gibt (Abbrechen, Überspringen, Alle überspringen oder was auch immer), stelle ich oft fest, dass es irgendwo stehen geblieben ist und auf eine Benutzereingabe gewartet hat. Ich könnte natürlich einfach auf den ersten Fehler warten und „Alle überspringen“ auswählen, aber das ist eine sehr schlechte Lösung – keine Protokollierung, ich muss warten.
Ich mache das in Nautilus.
Ich weiß, dass es dafür bessere Möglichkeiten geben muss. Ich möchte alle problematischen Dateien automatisch überspringen und eine Protokolldatei erstellen können, die mir sagt, welche Dateien nicht verschoben wurden und welches Problem bei jeder dieser Dateien aufgetreten ist.
Gibt es ein Tool oder Skript, das dies erledigt?
Antwort1
Haben Sie rsync ausprobiert?
Es handelt sich um ein Befehlszeilenprogramm und ist daher nicht so benutzerfreundlich wie Nautilus, aber die Befehlszeile eignet sich am besten zum Automatisieren von Aufgaben, die Sie möchten. rsync versucht tatsächlich, so viel wie möglich zu übertragen, es protokolliert alle Fehler und da es nur die „Unterschiede“ oder Änderungen überträgt, ist es „günstig“, es erneut auszuführen, um die Synchronisierung wiederherzustellen.
Außer rsync müssen Sie openssh-server auf dem/den empfangenden Computer(n) installieren und dann etwa Folgendes tun:
rsync -avu --progress source_folder remote-computer.local:Desktop/
Der Ordner wird an den Remote-Computer gesendet und auf dem Desktop abgelegt.
Anstelle von remote-computer.local können Sie eine IP-Adresse verwenden, wenn Sie die IP des Zielsystems kennen, aber standardmäßig sollte die Domäne .local funktionieren. Wenn der Hostname eines Computers also „buckaroo“ ist, können Sie ihn einfach als buckaroo.local angeben.