Wie unterscheidet sich `scp` von` rsync`?
Einen Artikel über einrichten der Ghost blogging sagt zu scp
kopieren von meinem lokalen Rechner auf einen remote-server:
scp -r ghost-0.3 root@*your-server-ip*:~/
Jedoch Railscast 339: Chef-Solo Grundlagen verwendet scp
kopieren in die entgegengesetzte Richtung (von der remote-server auf dem lokalen Computer):
scp -r [email protected]:/var/chef .
In der gleichen Railscast, wenn der Autor will, dass das kopieren von Dateien auf den remote-server (gleiche Richtung wie das erste Beispiel), nutzt er rsync
:
rsync -r . [email protected]:/var/chef
Warum die rsync
Befehl, wenn scp
kopieren in beide Richtungen? Wie funktioniert scp
unterscheiden sich von rsync
?
InformationsquelleAutor der Frage Leahcim | 2013-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den großen Unterschied zwischen diesen beiden tools ist, wie Sie Dateien kopieren.
scp
im Grunde liest die Quell-Datei und schreibt Sie in die Ziel. Es führt eine schlichte linear-Kopie, die lokal oder über ein Netzwerk.rsync
kopiert auch die Dateien lokal oder über ein Netzwerk. Aber es beschäftigt einen speziellen delta-transfer-Algorithmus und ein paar Optimierungen machen die Bedienung viel schneller. Betrachten Sie den Anruf.rsync
wird, überprüfen Sie die Dateien Größen und änderung Zeitstempel der beiden Eine und Bund überspringen Sie die weitere Bearbeitung, wenn Sie übereinstimmen.Wenn die Ziel-Datei B bereits vorhanden ist, werden die delta-transfer-Algorithmus wird sicherstellen, dass nur die Unterschiede zwischen Eine und B über den Draht geschickt.
rsync
wird das schreiben von Daten in eine temporäre Datei Tund ersetzen Sie dann die Ziel-Datei B mit Tum das update suchen "atomic" auf Prozesse, die möglicherweise mit B.Anderen Unterschied zwischen Ihnen betrifft Aufruf.
rsync
hat eine Vielzahl von Kommandozeilen-Optionen, so dass der Benutzer, um die Feinabstimmung Ihr Verhalten. Es unterstützt komplexe filter-Regeln, läuft auch im batch-Modus, daemon-Modus, etc.scp
hat nur ein paar Schalter.Zusammenfassend, verwenden Sie
scp
für Ihren Tag zu Tag Aufgaben. Befehle, die Sie eingeben, einmal in eine Weile auf Ihrem interaktiven shell. Es ist einfacher zu verwenden, und in diesen Fällenrsync
Optimierungen nicht viel helfen.Für wiederkehrende Aufgaben, wie
cron
jobs zu sehen, verwendenrsync
. Wie bereits erwähnt, auf mehrere Aufrufe wird es nutzen von Daten, die bereits übertragen wurden, führt sehr schnell und ressourcenschonend. Es ist ein hervorragendes Werkzeug zum halten von zwei Verzeichnissen synchronisiert über ein Netzwerk.Auch beim Umgang mit großen Dateien, verwenden Sie
rsync
mit der-P
option. Wenn die übertragung unterbrochen wird, können Sie fortsetzen, wo Sie beendet wurde durch die Neuauflage der Befehl. Siehe Sid Kshatriya ' s Antwort.InformationsquelleAutor der Antwort Rafa
rysnc kann nützlich sein, zu laufen, mit langsamen und unzuverlässigen verbindungen. So wenn Ihr download bricht in der Mitte eine große Datei rysnc Lage sein werden, weiterhin von wo es aufgehört hat, wenn erneut aufgerufen.
Verwenden
rsync -vP username@host:/path/to/file .
Die -P-option erhält teilweise heruntergeladene Dateien und zeigt auch Fortschritte.
Als üblich überprüfen
man rsync
InformationsquelleAutor der Antwort Sid Kshatriya
Es ist ein Unterschied für mich, dass
scp
ist immer verschlüsselt mit ssh (secure shell), währendrsync
ist nicht unbedingt verschlüsselt. Genauer gesagtrsync
nicht durchführen jegliche Verschlüsselung von selbst; es ist noch in der Lage mit anderen Mechanismen (ssh zum Beispiel), um eine Verschlüsselung.Neben der Sicherheit, die Verschlüsselung hat auch einen großen Einfluss auf Ihren transfer-Geschwindigkeit, sowie der CPU-overhead. (Meine Erfahrung ist, dass
rsync
deutlich schneller alsscp
.)Schauen Sie sich dieses postwenn
rsync
Verschlüsselung eingeschaltet ist.InformationsquelleAutor der Antwort Samuel Li
Ein wichtiges Merkmal von rsync über scp (neben der delta-Algorithmus) ist, dass es automatisch überprüft wenn die übertragene Datei wurde korrekt übertragen. Scp wird das nicht tun, die gelegentlich kann das Ergebnis von Korruption bei der übertragung von größeren Dateien. So im Allgemeinen ist rsync eine Kopie mit Garantie.
Sehen (centos) manpage Hinweis am Ende der
--checksum
option Beschreibung:InformationsquelleAutor der Antwort count0
scp ist am besten für eine - Datei.
ODER eine Kombination von
tar
& Kompression für kleinere Datensätzewie source-code-Bäumen mit geringen Ressourcen (ie: Bilder, sqlite etc).
Nochwenn Sie beginnen, den Umgang mit größeren Bände sagen:
Wird es unpraktisch zu bauen zip/tar.gz zu übertragenden Datei mit scp an dieser Stelle tun, um die körperliche Grenzen der server gehostet.
Als eine übung, die Sie tun können, einige gymnastik wie Rohrleitungen
tar
inssh
und umleiten der Ergebnisse in eine remote - Datei. (speichern Sie die brauchen, um zu bauenein swap oder temporären Klon aka zip-oder tar.gz)
Jedoch,
rsync Vereinfachung dieses Prozesses und ermöglicht die übertragung von Daten ohne aufwendige zusätzliche Speicherplatz auf der disc.
Auch
Kontinuierliche (cron?) updates nur minimale änderungen vs vollständigen Klon-Kopien-Geschwindigkeit
große Daten-Migrationen im Laufe der Zeit.
tl;dr
scp
== kleinen Maßstab (mit Platz zum bauen komprimierten Dateien auf dem gleichen Laufwerk)rsync
== großen Maßstab (mit der Notwendigkeit, zur Sicherung großer Daten und kein Platz Links)InformationsquelleAutor der Antwort copremesis
es ist besser zu denken in einem praktischen Kontext. In unserem team verwenden wir
rsync -aP
zu ersetzen eine schlechte cassandra host in unserem cluster. Wir können es nicht mit scp (slow und keinen Fortschritt, Bewahrung).InformationsquelleAutor der Antwort del bao