Der Hauptunterschied zwischen diesen Tools besteht darin, wie sie Dateien kopieren.
scpliest im Grunde die Quelldatei und schreibt sie in das Ziel. Es führt eine einfache lineare Kopie lokal oder über ein Netzwerk durch.
rsynckopiert 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.
rsyncschreibt 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. rsyncverfü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 scpverfügt nur über wenige Schalter.
Zusammenfassend können Sie es scpfü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 rsynchelfen Optimierungen nicht viel.
cronVerwenden 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 rsyncmit der -POption. 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 .