2009-03-11 15 views
1

Ich möchte einen ganzen Linux-Server kopieren, der über das Netzwerk außer Betrieb genommen wird, so dass wir sicher sind, dass nichts verloren geht.Was kann man sehen, dass rsync nicht kann?

habe ich du / und wurde gesagt, dass es 60 GB unter ist/

Dann habe ich rsync -r/[email protected]:/old-server und wenn du im old-server dir zu tun bekam ich 22 GB.

Warum ist dieser Unterschied? Gibt es etwas, das du kann aber rsync kann nicht kopieren?

Antwort

3

Wahrscheinlich haben Sie Dateien gelöscht, die noch nicht freigegeben werden können, weil auf ihnen offene Dateihandles vorhanden sind. (Ich wusste vorher nicht, dass du die Verwendung von diesen sehen würdest, aber einige Tests haben gezeigt, dass dies der Fall ist.) Du kannst das unter lsof recherchieren. Die beiden Hauptgründe dafür sind meiner Erfahrung nach das Löschen von Apache-Protokollen, ohne das httpd zu löschen und mysql-Tabellen aus dem Dateisystem zu löschen, anstatt DROP TABLE zu verwenden.

+0

Ich denke, dies würde die DF-Ausgabe beeinflussen, aber nicht du. –

+0

Das dachte ich mir vorher, da ich es vorher nur mit df behandelt hatte. Wie ich in meiner Antwort gezeigt habe, haben Tests gezeigt, dass ich falsch lag. Es stellt sich heraus, dass die Plattenauslastung auf einem ziemlich niedrigen Niveau analysiert wird, es sei denn, Sie sagen es nicht mit --Anzeigegröße. – chaos

+0

- apparent-size hat mit Sparse-Dateien zu tun, nicht mit gelöschten Dateien. du zählt nur Dateien, die es sehen kann, und es kann keine gelöschten Dateien sehen. –

0

Im moment gibt es einige spezielle Dateisysteme, die Sie mit dem Kopieren mit rsync, zum Beispiel vermeiden sollten, /proc, /sys, /tmp. Sie können für den Unterschied verantwortlich sein, den Sie sehen, obwohl es sowieso zu groß erscheint.

Es könnte einige nicht lesbare Verzeichnisse geben (z. B. ohne r oder x). Ich kann mich nicht erinnern, ob ein Prozess mit root Rechten auf solche Verzeichnisse zugreifen kann, ohne zuerst die Berechtigungen zu reparieren.

besser erzeugen und vergleichen Sie die Liste der Dateien und deren MD5-Summen.

0

Wenn Sie ein wenig Zeit auf Ihre Hände haben, können Sie herausfinden, genau das, was der Unterschied ist: laufen cd /; find . > /tmp/old auf dem alten Server, cd /old-server; find . > /tmp/new auf dem neuen Server, dann vimdiff die beiden Dateien zu sehen, was sich geändert hat.

0

Einige Vorschläge:

  • sparse files (Verwendung -S)
  • hard links (Verwendung -H)
  • /proc und /sys (Verwendung --exclude oder, besser, -x und Backup jeweils separat Dateisystem)

Ich neige dazu, rsync -axHSW --numeric-ids in ähnlichen Umständen zu verwenden.