Ich habe zwei Server. Eine von ihnen hat 15 Millionen Textdateien (ca. 40 GB). Ich versuche, sie auf einen anderen Server zu übertragen. Ich überlegte, sie zu komprimieren und das Archiv zu übertragen, erkannte jedoch, dass dies keine gute Idee ist.
Also habe ich den folgenden Befehl verwendet:
scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt
Aber mir ist aufgefallen, dass dieser Befehl nur etwa 50.000 Dateien überträgt und dann die Verbindung unterbrochen wird.
Gibt es eine bessere Lösung, mit der ich die gesamte Dateisammlung übertragen kann? Ich meine, etwas rsync
zu verwenden, um die Dateien zu übertragen, die nicht übertragen wurden, als die Verbindung unterbrochen wurde. Wenn ein weiterer Verbindungsabbruch auftritt, gebe ich den Befehl zum Übertragen von Dateien erneut ein und ignoriere die bereits erfolgreich übertragenen Dateien.
Dies ist bei nicht möglich scp
, da immer ab der ersten Datei begonnen wird.
quelle
-h
Flag hinzuzufügen , um für Menschen lesbare Einheiten zu verwenden. Und wenn Sie mehr Ausführlichkeit wünschen, haben Sie ein paar Möglichkeiten:-i
und / oder-v
/-vv
.ssh
keine Option für Sie ist und Sie die Verschlüsselung nicht benötigen oder möchten, können Sie mein Skript s3.amazonaws.com/skaperen/rsendBenutze einfach rsync über ssh!
rsync -av username@ip:/var/www/html/txt /var/www/html/
Beachten Sie, wie ich am Ende der Ordner Schrägstriche verwendet habe - das ist wichtig .
quelle
rsync
Handbuchseite: "Ein abschließender Schrägstrich in der Quelle ändert dieses Verhalten, um zu vermeiden, dass am Ziel eine zusätzliche Verzeichnisebene erstellt wird. Sie können sich ein abschließendes / in einer Quelle als" Kopieren des Inhalts dieses Verzeichnisses "im Gegensatz zu" vorstellen. Kopieren Sie das Verzeichnis mit dem Namen ", aber in beiden Fällen werden die Attribute des enthaltenden Verzeichnisses in das enthaltende Verzeichnis auf dem Ziel übertragen."-av
?Verwenden Sie lftp, es ist viel schneller als rsync und das Beste für das Spiegeln von Websites (viele kleine Dateien). Es kann auch über mehrere Verbindungen parallel übertragen werden:
Wenn eine Verbindung unterbrochen wird, wird die Verbindung wiederhergestellt und fortgesetzt. Wenn Sie die Übertragung abbrechen, werden vorhandene Dateien übersprungen und fortgesetzt.
http://lftp.yar.ru/
quelle
Ein anderer Weg ist, eine (optional komprimierte) tar-Datei über ssh zu leiten:
quelle