it-swarm.com.de

Wie kopiere ich nur neue Dateien mit dem Befehl "scp"?

Ich habe Hunderte von Dateien mit dem Befehl scp auf einen anderen Computer kopiert und den Befehl stalledFehler erhalten. Jetzt werde ich die Dateien wieder kopieren. Gibt es eine Möglichkeit, das Kopieren der bereits kopierten Dateien zu vermeiden?

24
Meysam

Sie können rsync dafür verwenden. rsync ist wirklich für diese Art von Operation ausgelegt.

Syntax:

rsync -avh /source/path/ Host:/destination/path

oder

rsync -a --ignore-existing /local/directory/ Host:/remote/directory/

Wenn Sie es zum ersten Mal ausführen, werden alle Inhalte kopiert und nur neue Dateien.

Wenn Sie den Datenverkehr über eine SSH-Verbindung tunneln müssen (z. B. aus Gründen der Vertraulichkeit), wie von Ihrer ursprünglichen Anfrage nach einer SCP-basierten Lösung angegeben, fügen Sie einfach -e ssh Zu den Parametern zu rsync hinzu . Zum Beispiel:

rsync -avh -e ssh /source/path/ Host:/destination/path
40
user37323

Wenn Sie aus irgendeinem Grund bei scp bleiben möchten, können Sie w Berechtigungen für Ihre lokalen Daten (wenn Sie das Recht dazu haben) und scp entfernen wird es nicht berühren. Präziser sein:

  1. chmod a-w local/*.tar.gz (in Ihrem lokalen Verzeichnis)
  2. scp remote/*.tar.gz local

Dies ist nicht sehr effizient, Nizza, kann aber hilfreich sein, wenn Sie eine schnelle temporäre Lösung benötigen, ohne zu etwas anderem als scp zu wechseln. (Kudos: scp ohne vorhandene Dateien im Ziel zu ersetzen )

6
xhudik

Es gab keine genaue Antwort darauf, wie dies mit SCP zu tun ist, da dies die ursprüngliche Frage war.

Sudo find /files/ -type f -exec chmod a-w {} \;

scp -r [email protected]:/file/location/* /files

Wenn das Kopieren der Dateien abgeschlossen ist, ändern Sie die Berechtigungen zurück:

Sudo chmod a+w -R /files

4
Rick