Derzeit kann ich nur eine einzelne .tar
Datei kopieren . Aber wie kann ich Verzeichnisse rekursiv mit kopieren scp
?
572
Ja, benutze -r
:
scp -rp sourcedirectory user@dest:/path
Hinweis: Dadurch wird das sourcedirectory
Innere erstellt, in dem sich /path
die Dateien befinden/path/sourcedirectory
-pr
(Optionen in umgekehrter Reihenfolge) die Ordner nicht kopieren, sondern ihren Inhalt in das Zielverzeichnis kopieren (anscheinend ist die Reihenfolge der Optionen von Bedeutung).Obwohl die vorherigen Antworten technisch korrekt sind, sollten Sie
rsync
stattdessen auch die Verwendung in Betracht ziehen .rsync
vergleicht die Daten auf der Sende- und Empfangsseite mit einem Diff-Mechanismus, damit bereits gesendete Daten nicht erneut gesendet werden müssen.Wenn Sie etwas mehr als einmal auf einen Remote-Computer kopieren möchten, verwenden Sie
rsync
. Eigentlich ist es gut,rsync
jedes Mal zu verwenden, da es mehr Steuerelemente zum Kopieren von Dateiberechtigungen und -besitz sowie zum Ausschließen bestimmter Dateien oder Verzeichnisse enthält. Im Allgemeinen:synchronisiert ein lokales Verzeichnis mit einem entfernten Verzeichnis. Wenn Sie es ein zweites Mal ausführen und sich der Inhalt des lokalen Verzeichnisses nicht geändert hat, werden keine Daten übertragen - viel effizienter als
scp
jedes Mal alles auszuführen und zu kopieren.Außerdem
rsync
können Sie sich im Gegensatz zu unterbrochenen Übertragungen sehr leicht erholenscp
.Schließlich werden moderne Versionen
rsync
von standardmäßig über ssh ausgeführt. Wenn diesscp
also bereits funktioniert,rsync
sollte dies praktisch ein Ersatz sein.quelle
rsync
ist effizienter. Eine Sache, die es derzeit nichtscp
tut, ist das Kopieren zwischen entfernten Hosts (zumindest ohne den rsync-Client auf einem von ihnen auszuführen).-av
: v steht für ausführlich, a für archiv und ist eine Verknüpfung zu -rlptgoD, die rekursiv impliziert, dass die Daten und Links der Rechteinhaber erhalten bleiben. Wenn Sie nur rekursiv verwenden möchten-r
Dafür gibt es die
-r
Option. :)Weitere Informationen finden Sie bei Bedarf auf der scp-Manpage .
quelle
Rekursive Kopieroption '-r' (Kleinbuchstaben)
Was ich mit der regulären lokalen rekursiven Kopieroption '-R' verwechsle (Großbuchstaben)
quelle
Am besten verwenden Sie rsync über SSH
Meine Lieblingsoptionen sind -Pazvessh --delete:
quelle
rsync
, die ich verwendet habe, würdenssh
standardmäßig verwendet, daher-essh
ist es unwahrscheinlich, dass sie benötigt werden. Und die Wahl des Befehls, der zum Herstellen einer Verbindung zum Remote-Host verwendet wird, hat nichts mit dem rekursiven Kopieren zu tun.Nachdem ich nach dem rekursiven Kopier-Flag gesucht und es dank dieses Posts erfolgreich verwendet habe, möchte ich nur einen Vorschlag posten.
In diesem Fall kopieren Sie (rekursiv) ein Verzeichnis. Wenn die Dateien komprimiert gesendet werden, können Sie möglicherweise Zeit bei der Übertragung sparen
Was ich am Ende gemacht habe war:
Hoffe das hilft
quelle
.tar.gz
oder sein,.tgz
da die Datei ein gezipptes Tar-Archiv ist (da das-z
Flag verwendet wird).Mit diesem einfachen Befehl können Sie ein Verzeichnis rekursiv in ein komprimiertes Archiv kopieren:
Um beispielsweise Inhalte von
/var/log
vondomain.com
zu kopieren , führen~/logs.tgz
Sie Folgendes aus:Sie können Dateien auf dem Zielsystem auch mithilfe von Pipes extrahieren. Dieser Befehl kopiert den Inhalt von
/var/log
atdomain.com
to~/destination/log
auf Ihr System:Um ein Verzeichnis zu spiegeln, sollten Sie wahrscheinlich
rsync
...quelle
Wenn Sie es vorziehen, das Kennwort des Benutzers als Parameter zu übergeben, anstatt es interaktiv einzugeben, können Sie
sshpass
(sudo apt-get install -y sshpass
) verwenden.Beispiel:
quelle
Sie können die Option -r mit dem Befehl scp verwenden, um Verzeichnisse auf einem beliebigen System rekursiv zu kopieren. Wenn Sie weitere Informationen benötigen, lesen Sie das Tutorial zum Befehl scp . Die Option -r steht für eine rekursive Operation in den meisten Linux-Befehlen.
quelle
-r
Option wurde zwar schon vor Jahren vorgeschlagen und ist die akzeptierte Antwort.Eine andere (wahrscheinlich bessere für die wiederholte Verwendung) Option ist die Verwendung von NFS. Schauen Sie sich den NFS-Kernel-Server an und erfahren Sie, wie Sie NFS-Freigaben einrichten.
quelle
scp
NFS verwenden würden , dies ist jedoch keine Option.