In einem Artikel zum Einrichten des Ghost-Bloggens heißt es, dass scp
zum Kopieren von meinem lokalen Computer auf einen Remote-Server Folgendes verwendet werden soll:
scp -r ghost-0.3 root@*your-server-ip*:~/
Allerdings Railscast 339: Chef Solo Basics nutzt scp
in der entgegengesetzten Richtung (von dem Remote - Server auf dem lokalen Rechner) zu kopieren:
scp -r [email protected]:/var/chef .
Wenn der Autor im selben Railscast Dateien auf den Remote-Server kopieren möchte (dieselbe Richtung wie im ersten Beispiel), verwendet er rsync
:
rsync -r . [email protected]:/var/chef
Warum den rsync
Befehl verwenden, wenn scp
in beide Richtungen kopiert wird? Wie unterscheidet scp
sich von rsync
?
Antworten:
Der Hauptunterschied zwischen diesen Tools besteht darin, wie sie Dateien kopieren.
scp
liest im Grunde die Quelldatei und schreibt sie in das Ziel. Es führt eine einfache lineare Kopie lokal oder über ein Netzwerk durch.rsync
kopiert auch Dateien lokal oder über ein Netzwerk. Es verwendet jedoch einen speziellen Delta-Übertragungsalgorithmus und einige Optimierungen, um den Vorgang erheblich zu beschleunigen. Betrachten Sie den Anruf.rsync
überprüft die Dateigrößen und Änderungszeitstempel von A und B und überspringt jede weitere Verarbeitung, wenn sie übereinstimmen.Wenn die Zieldatei B bereits vorhanden ist, stellt der Delta-Übertragungsalgorithmus sicher, dass nur Unterschiede zwischen A und B über die Leitung gesendet werden.
rsync
schreibt Daten in eine temporäre Datei T und ersetzt dann die Zieldatei B durch T , damit das Update für Prozesse, die möglicherweise B verwenden , "atomar" aussieht .Ein weiterer Unterschied zwischen ihnen betrifft die Anrufung.
rsync
verfügt über eine Vielzahl von Befehlszeilenoptionen, mit denen der Benutzer sein Verhalten optimieren kann. Es unterstützt komplexe Filterregeln, wird im Batch-Modus, Daemon-Modus usw. ausgeführt undscp
verfügt nur über wenige Schalter.Zusammenfassend können Sie es
scp
für Ihre täglichen Aufgaben verwenden. Befehle, die Sie gelegentlich in Ihre interaktive Shell eingeben. Es ist einfacher zu bedienen und in diesen Fällenrsync
helfen Optimierungen nicht viel.cron
Verwenden Sie für wiederkehrende Aufgaben wie Jobsrsync
. Wie bereits erwähnt, werden bei mehreren Aufrufen bereits übertragene Daten genutzt, was sehr schnell funktioniert und Ressourcen spart. Es ist ein hervorragendes Tool, um zwei Verzeichnisse über ein Netzwerk synchron zu halten.Auch wenn mit großen Dateien, verwenden Sie den Umgang
rsync
mit der-P
Option. Wenn die Übertragung unterbrochen wird, können Sie sie an der Stelle fortsetzen, an der sie gestoppt wurde, indem Sie den Befehl erneut ausgeben. Siehe Sid Kshatriyas Antwort .quelle
scp
es wahrscheinlicher ist, dass es auf einem Unix-ähnlichen System verfügbar ist, sodass Sie hin und wieder verhindern, dass ein nerviger "Befehl nicht gefunden" wird.scp
undrsync
:rsync -a
gegenüberscp -rp
der Beibehaltung von Änderungszeiten und Berechtigungen.rysnc kann nützlich sein, um langsame und unzuverlässige Verbindungen auszuführen. Wenn Ihr Download mitten in einer großen Datei abgebrochen wird, kann rysnc an der Stelle fortfahren, an der es beim erneuten Aufrufen aufgehört hat.
Verwenden
rsync -vP username@host:/path/to/file .
Die Option -P behält teilweise heruntergeladene Dateien bei und zeigt auch den Fortschritt an.
Wie immer prüfen
man rsync
quelle
Differenz s / w scp und rsync bei verschiedenen Parametern
1. Leistung über Latenz
scp
: scp ist relativ weniger optimiert und schnellerrsync
: rsync ist vergleichsweise optimierter und schnellerhttps://www.disk91.com/2014/technology/networks/compare-performance-of-different-file-transfer-protocol-over-latency/
2. Unterbrechungsbehandlung
scp
: Das Befehlszeilentool scp kann abgebrochene Downloads von verlorenen Netzwerkverbindungen nicht fortsetzenrsync
: Wenn die obige rsync-Sitzung selbst unterbrochen wird, können Sie sie beliebig oft fortsetzen, indem Sie denselben Befehl eingeben. rsync startet die Übertragung automatisch dort neu, wo sie aufgehört hat.http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html
3. Befehlsbeispiel
scp
rsync
Die
-P
Option ist die gleiche wie--partial --progress
, damit rsync mit teilweise heruntergeladenen Dateien arbeiten kann. Die--rsh=ssh
Option weist rsync an, ssh als Remote-Shell zu verwenden.4. Sicherheit:
scp ist sicherer. Sie müssen es verwenden
rsync --rsh=ssh
, um es so sicher wie scp zu machen.Mann Dokument, um mehr zu wissen:
quelle
The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.
Ein Hauptmerkmal von
rsync
overscp
(neben dem Delta-Algorithmus und der Verschlüsselung bei Verwendung mit ssh) ist, dass automatisch überprüft wird, ob die übertragene Datei korrekt übertragen wurde. Scp wird dies nicht tun, was gelegentlich zu einer Beschädigung beim Übertragen größerer Dateien führen kann. Im Allgemeinen ist rsync also eine Kopie mit Garantie .Centos-Manpages erwähnen dies am Ende der
--checksum
Optionsbeschreibung:quelle
Ich habe einen Unterschied, der
scp
immer mit ssh (Secure Shell)rsync
verschlüsselt ist, aber nicht unbedingt verschlüsselt ist. Insbesonderersync
führt keine Verschlüsselung selbst durch; Es kann weiterhin andere Mechanismen (z. B. ssh) verwenden, um die Verschlüsselung durchzuführen.Neben der Sicherheit hat die Verschlüsselung auch einen großen Einfluss auf Ihre Übertragungsgeschwindigkeit sowie den CPU-Overhead. (Meine Erfahrung ist, dass
rsync
das deutlich schneller sein kann alsscp
.)In diesem Beitrag erfahren Sie, wann
rsync
die Verschlüsselung aktiviert ist.quelle
scp ist am besten für eine Datei.
ODER eine Kombination aus
tar
& Komprimierung für kleinere Datensätze wie Quellcodebäume mit kleinen Ressourcen (z. B. Bilder, SQLite usw. ).Und doch , wenn Sie mit beginnen Umgang größeren Mengen sagen:
Es wird unpraktisch, eine zip / tar.gz- Datei zu erstellen, die an dieser Stelle mit scp an die physischen Grenzen des gehosteten Servers übertragen werden soll.
Als Übung können Sie einige tun Gymnastik wie Rohrleitungen
tar
inssh
die Ergebnisse in eine und Umleitung Remote - Datei. (Sie müssen keinen Swap oder temporären Klon erstellen, auch bekannt als zip oder tar.gz).Allerdings ist
rsync vereinfacht diesen Vorgang und ermöglicht Ihnen das Übertragen von Daten, ohne zusätzlichen Speicherplatz zu beanspruchen.
auch ,
Kontinuierliche (cron?) Updates verwenden nur minimale Änderungen, während vollständig geklonte Kopien die Migration großer Datenmengen im Laufe der Zeit beschleunigen.
tl; dr
scp
== kleiner Maßstab (mit Platz zum Erstellen komprimierter Dateien auf demselben Laufwerk)rsync
== großer Maßstab (mit der Notwendigkeit, große Datenmengen zu sichern und keinen Platz mehr zu haben)quelle
Es ist besser, in einem praktischen Kontext zu denken. In unserem Team
rsync -aP
ersetzen wir einen fehlerhaften Cassandra-Host in unserem Cluster. Wir können dies nicht mit scp tun (langsame und keine Fortschrittserhaltung).quelle