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 A host:B
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 und scp
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ällen rsync
helfen Optimierungen nicht viel.
cron
Verwenden Sie für wiederkehrende Aufgaben wie Jobs rsync
. 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 .