Ich habe ungefähr 200.000 Dateien, die ich heute auf einen neuen Server übertrage. Ich habe noch nie so viel unternommen und wollte Ratschläge dazu bekommen, wie ich vorgehen soll. Ich bewege sie zwischen zwei Centos 6-Distributionen und sie befinden sich an verschiedenen Orten im Land. Ich habe nicht genügend Festplattenspeicher auf dem ursprünglichen Server, um alle Verzeichnisse und Dateien in einem großen Tarball zu speichern. Meine Frage ist also, wie ich all diese Dateien übertragen soll. rsync? eine spezielle Art der Verwendung von Rsync? Irgendwelche Eingaben / Vorschläge, wie man es macht, wären erstaunlich.
Vielen Dank
BEARBEITEN: Für diejenigen, die sich fragen, empfehle ich dringend die Verwendung eines, screen
wenn Sie einen großen rsync
Befehl wie diesen ausführen . Besonders wenn etwas Dummes passieren kann und Sie die Verbindung zu dem Server A verlieren, von dem Sie den rsync
Befehl ausführen. Nehmen Sie dann einfach den Bildschirm ab und setzen Sie ihn später fort.
quelle
rsync
? Vielleicht auf einer kleinen Reihe von Dateien oder so? Sollte das ideale Werkzeug dafür sein.tar cz | ssh [email protected] tar xz
rsync
für spätere Aktualisierungen): "Unterschätzen Sie niemals die Bandbreite eines Kombis voller Bänder" (z. B .: Haben Sie darüber nachgedacht, eine 2. Festplatte zu platzieren (oder einen USB2 anzuschließen)? / usb3 disk), ein Backup darauf erstellen und dieses über fedex an den Remote-Standort senden? Es könnte VIEL schneller als alles andere sein und Bandbreite für andere Zwecke sparen.Antworten:
Nur um die Antwort von Simon zu verdeutlichen ,
rsync
ist es das perfekte Werkzeug für diesen Job:Angenommen, Sie haben ssh-Zugriff auf den Remote-Computer, möchten Sie Folgendes tun:
Dadurch wird das Verzeichnis kopieren ,
path/to/local/foo
um/path/to/remote/bar
auf dem Remote - Server. Ein neues Unterverzeichnis mit dem Namenbar/foo
wird erstellt. Wenn Sie nur den Inhalt eines Verzeichnisses kopieren möchten , ohne ein Verzeichnis mit diesem Namen auf dem Ziel zu erstellen, fügen Sie einen abschließenden Schrägstrich hinzu:Dadurch wird der Inhalt von
foo/
in das Remote-Verzeichnis kopiertbar/
.Einige relevante Optionen:
quelle
rsync -hrtplu --progress
wenn ich den Fortschritt so sehen wollte, wie er vor sich geht?rsync --progress --stats -hrtl --update source destination
.rsync -hrtplu --progress --rsh='ssh -p2202'
ist das, was ich benutze und es kann keine Verbindung herstellen. Immer 255 Fehler. Aber ich bin begeistert. Also ich weiß, dass es nicht die Firewall ist ... muss ich das Passwort auch über das cmd eingeben? oder würde es mich nicht danach fragen?Dies hängt davon ab, wie schnell kopiert werden muss und wie viel Bandbreite zur Verfügung steht.
Berücksichtigen Sie bei einer schlechten Netzwerkverbindung die Bandbreite eines mit Bändern gefüllten Lastwagens. (Lesen Sie: Senden Sie eine 2,5-Zoll-Festplatte per Post oder fahren Sie sie dort selbst. 300-Gigabit-Laufwerke sollten leicht zu finden sein.)
Wenn es weniger zeitkritisch ist oder Sie viel Bandbreite haben, ist rsync großartig. Wenn ein Fehler auftritt, können Sie einfach fortfahren, ohne die früheren Dateien erneut zu kopieren.
[Bearbeiten] Ich habe vergessen hinzuzufügen, dass Sie rsync mehrmals ausführen können, wenn Ihre Daten während des Kopierens verwendet werden.
Beispiel:
1) Verwendete Daten. Rsync -> Alle Daten werden kopiert. Das kann ein bisschen dauern.
2) Führen Sie rsync erneut aus. Es werden nur die geänderten Dateien kopiert. Das sollte schnell gehen.
Sie können dies mehrmals tun, bis keine Änderungen mehr vorgenommen wurden, oder Sie können dies auf intelligente / sichere Weise tun, indem Sie die Daten während des Kopiervorgangs schreibgeschützt machen. (Wenn es sich beispielsweise um ein verwendetes freigegebenes Set handelt, dessen Freigabe schreibgeschützt ist. Oder synchronisieren Sie die Daten, und legen Sie nachts die Freigabe schreibgeschützt fest, während Sie sie ein zweites Mal ausführen.)
quelle
Ich würde für Rsync gehen! Ich verwende es, um meinen Server auf einem externen Server zu sichern, und es funktioniert einwandfrei. Normalerweise müssen ein paar MB kopiert werden, aber an manchen Tagen sind es 20 bis 30 GB, und es hat immer problemlos funktioniert.
quelle
Rsync über NFS mit Gigabit-Verbindung dauert fast 10 Stunden. Es ist besser, Daten auf die Festplatte zu kopieren und zwischen den Servern zu verschieben. Wenn Sie eine Eins-zu-Eins-Kopie der tatsächlichen Festplatte erstellen müssen, verwenden Sie dd oder ähnliches, um ein unformatiertes Image der Festplatte zu erstellen. Die Verwendung von ssh (scp) verursacht einen enormen Overhead. Empirisch getestet auf Gigabit-Verbindung. Mit rsync kann eine inkrementelle Synchronisierung zwischen zwei Servern durchgeführt werden, die im Hochverfügbarkeitsmodus oder im Sicherungsmodus verwendet werden. Ich vermute.
quelle
will took nearly about 10h. It will be better to copy data on HDD and move them between server.
außer dass es im ganzen Land ist, also würde es länger dauern.Erstmalige Verwendung von NFS und tar / untar (NFS ist in diesem Fall das schnellste Protokoll, tar, um Netzwerkbandbreite durch höhere CPU-Auslastung zu sparen.)
Verwenden Sie das nächste Mal / s rsync
quelle
tar -cf - * | gzip | nc -p 4567
undnc -l 4567 | gunzip | tar xf -
.