Ich habe derzeit zwei CentOS-Server. Ich muss wissen, wie und was der schnellste Weg wäre, um das Bilderverzeichnis zu "tarieren" und es zu scpen.
Ist das der schnellste Weg, den ich gerade vorgeschlagen habe, weil das Teern ewig dauert ... Ich habe den Befehl ausgeführt:
tar cvf imagesbackup.tar images
Und ich wollte es einfach durchgehen.
Lassen Sie mich wissen, ob es einen schnelleren Weg gibt. Ich habe Remote / SSH-Zugriff auf beide Maschinen.
file-transfer
scp
tar
Andrew Fashion
quelle
quelle
Antworten:
Anstatt mit tar auf Ihre lokale Festplatte zu schreiben, können Sie mit ssh direkt über das Netzwerk auf den Remote-Server schreiben.
Alle Zeichenfolgen, die auf Ihren Befehl "ssh" folgen, werden auf dem Remoteserver anstelle der interaktiven Anmeldung ausgeführt. Sie können die Ein- / Ausgabe von und zu diesen Remote-Befehlen über SSH weiterleiten, als wären sie lokal. Wenn Sie den Befehl in Anführungszeichen setzen, werden Verwirrungen vermieden, insbesondere bei der Umleitung.
Oder Sie können die tar-Datei direkt auf dem anderen Server extrahieren:
Beachten Sie die selten verwendete
-C
Option. Es bedeutet "Wechseln Sie zuerst in dieses Verzeichnis, bevor Sie etwas tun."Oder möchten Sie vielleicht vom Zielserver "ziehen":
Beachten Sie, dass das
<(cmd)
Konstrukt für bash neu ist und auf älteren Systemen nicht funktioniert. Es führt ein Programm aus, sendet die Ausgabe an eine Pipe und ersetzt diese Pipe durch den Befehl, als wäre es eine Datei.Ich hätte es einfach so schreiben können:
Oder wie folgt:
Oder Sie können sich etwas Kummer ersparen und einfach rsync verwenden:
Denken Sie schließlich daran, dass das Komprimieren der Daten vor der Übertragung Ihre Bandbreite verringert. Bei einer sehr schnellen Verbindung kann der Vorgang jedoch länger dauern . Dies liegt daran, dass Ihr Computer möglicherweise nicht schnell genug komprimiert, um Schritt zu halten. Wenn das Komprimieren von 100 MB länger dauert als das Senden von 100 MB, ist es schneller, es unkomprimiert zu senden.
Alternativ können Sie Piping in Betracht ziehen, um sich selbst zu gzipen (anstatt die Option -z zu verwenden), damit Sie eine Komprimierungsstufe angeben können. Ich habe die Erfahrung gemacht, dass bei schnellen Netzwerkverbindungen mit komprimierbaren Daten die Verwendung von gzip auf Stufe 2 oder 3 (die Standardeinstellung ist 6) in den meisten Fällen den besten Gesamtdurchsatz ergibt. Wie so:
quelle
Ich würde versucht sein, es über mich selbst zu synchronisieren - es macht Komprimierung und behandelt Linkverlust gut.
quelle
Wenn Sie sie nur tarieren und sonst nichts, wird dies Tonnen von Zeit mit nur minimalem Geschwindigkeitsgewinn verschwenden.
Das einfache Tarieren der Dateien mit den cvf-Schaltern kostet also effektiv die Zeit, die zum Lesen aller 55-GB-Bilder und zum Zurückschreiben auf die Festplatte benötigt wird. (Tatsächlich wird noch mehr Zeit verschwendet, da ein erheblicher Overhead entsteht.)
Sie haben hier nur einen Vorteil: Der Aufwand für das Hochladen vieler Dateien wird reduziert. Wenn Sie die Bilder komprimieren, können Sie möglicherweise schnellere Übertragungszeiten erzielen (da sie meines Erachtens bereits in einem komprimierten Format vorliegen, ist dies keine große Hilfe). Nur mehr Rechenzeitverschwendung.
Der größte Nachteil beim Übertragen eines riesigen Teerarchivs über Kabel besteht darin, dass bei einem Defekt ein Neustart erforderlich sein kann.
Ich würde so verwenden:
Auf dem neuen Server
Und dann eben
diff
. Und da scp die Komprimierung im laufenden Betrieb unterstützt, sind keine separaten Archive erforderlich.Bearbeiten
Ich werde die MD5-Informationen behalten, da sie für das OP nützlich waren. Aber ein Kommentar traf mich mit neuen Einsichten. Ein bisschen Suchen lieferte also diese nützliche Information. Bitte beachten Sie, dass das Thema hier SFTP ist, nicht direkt SCP .
quelle
Zusätzlich zu Paceys Vorschlag für md5sum würde ich Folgendes verwenden:
Auf dem Bestimmungsort:
nc -w5 -l -p 4567 | tar -xvf -
Dann auf der Quelle:
tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567
Es ist immer noch ein tar / untar und es gibt keine Verschlüsselung, aber es ist direkt auf den anderen Server. Starten Sie beide im Tandem (
-w5
gibt Ihnen 5 Sekunden Zeit) und schauen Sie zu, wie es losgeht. Wenn die Bandbreite knapp ist, fügen Sie -z an beiden Enden zum Teer hinzu.quelle
Ein Punkt - nicht alle Hosts haben rsync und viele Hosts haben unterschiedliche Versionen von tar. Aus diesem Grund könnte man als erste Anlaufstelle den oft vernachlässigten CPIO empfehlen.
Sie können über ssh eine Ad-hoc-Replikation von Datei- / Verzeichnisstrukturen zwischen Hosts durchführen. Auf diese Weise haben Sie eine genauere Kontrolle darüber, was gesendet wird, da Sie cpio, nom-nom, "füttern" müssen. Es ist auch mehr argument-portable, cpio ändert nicht viel - dies ist ein wichtiger Punkt, wenn Sie mehrere Hosts in einer heterogenen Umgebung betreuen.
Beispiel: Kopieren / Exportieren / Home und Unterverzeichnisse zum Remote-Host:
Das Obige kopiert den Inhalt von / export / home und alle Unterverzeichnisse nach / export / home auf dem Remote-Host.
Hoffe das hilft.
quelle
Wenn Sie ssh-Zugriff haben, haben Sie rsync-Zugriff.
oder
Wenn Sie eine Fehlermeldung wie "rsync error: Einige Dateien konnten unter main.c (977) [sender = 2.6.9] nicht übertragen werden (Code 23)", überprüfen Sie Ihren Benutzer und die Gruppen zwischen den Servern. Sie könnten eine Fehlanpassung haben.
Verwenden Sie die Option rsync "-z", wenn Sie möchten, dass rsync die Übertragung komprimiert. Diese Option benötigt mehr CPU, aber weniger Bandbreite.
Es gibt eine "--progress" -Option, mit der Sie einen Prozentsatz übertragen, was ein bisschen nett ist, wenn Sie so etwas mögen.
quelle
Befinden sie sich in einem gemeinsam genutzten Netzwerk, anstatt das Internet zum Übertragen von Dateien zu benötigen? NFS oder FTP sind möglicherweise viel schneller als der Overhead von SCP, obwohl Sie die Verschlüsselung während der Übertragung verlieren würden.
quelle
Oder Sie können immer Teerpfeifen verwenden:
'j' = bzip2, Sie können 'z' für gzip oder --lzma verwenden, wenn Ihr Tar dies unterstützt.
quelle