Ich habe zwei Server, die das gleiche Setup haben sollten, mit Ausnahme der bekannten Unterschiede.
Durch Laufen:
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt
Ich kann eine Liste aller Dateien auf einem Server finden und mit der Liste der Dateien auf dem anderen Server vergleichen. Dies zeigt mir die Unterschiede in den Namen der Dateien, die sich auf den Servern befinden.
Ich möchte wirklich eine Prüfsumme für alle Dateien auf beiden Servern erstellen und diese vergleichen, um festzustellen, wo sich die Inhalte unterscheiden. z.B
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum
Ist das ein vernünftiger Weg, dies zu tun? Ich dachte, dass Rysnc bereits die meisten dieser Funktionen hat, aber kann es verwendet werden, um die Liste der Unterschiede bereitzustellen?
-print0
anstelle von-print
undxargs -0
anstelle von verwendenxargs
. Sie vermeiden Probleme, die durch "ungerade" Dateinamen verursacht werden.Antworten:
Du hast recht, rsync ist perfekt dafür. Verwenden Sie
--itemize-changes
(aka -i). Stellen Sie sicher, dass Sie dies auf beiden Seiten als root ausführen können (oder auf einem anderen Benutzer mit vollem Zugriff auf den Computer):-a
ist für das Archiv und bewirkt, dass rsync ein genaues Duplikat erstellt (abgesehen von einigen Fällen, in denen es um Links geht).-n
ist für Trockenlauf und bedeutet, dass nichts geändert wird (dies ist WICHTIG! :))-i
dient zum Ändern von Elementen und gibt ein einfach zu verstehendes Format aus, in dem jede zu aktualisierende Datei angezeigt wird (die Syntax wird in der Manpage unter der ausführlichen Hilfe für diesen Trigger ausführlich erläutert).--delete
Mit rsync werden Dateien gelöscht, die auf dem Ziel, aber nicht auf der Quelle vorhanden sind.Wenn Sie bestimmte Pfade ausschließen möchten, verwenden Sie Befehle wie
--exclude /var
. Die Ausschlussmuster sind relativ zum Quellverzeichnis (das in diesem Fall / ist, also praktisch absolut).quelle
Möglicherweise möchten Sie das -c-Flag von rsync untersuchen. Von
man rsync
:Ich würde einen Kommentar zu Alex Jurkiewiczs Antwort hinterlassen, aber ich habe nicht genug Repräsentanten: '(noch ...
quelle
Ein nützliches Tool, das Sie in Betracht ziehen sollten, ist "rpm -Va". Dadurch wird eine Liste aller gepackten Dateien ausgedruckt , die sich von denen unterscheiden, als sie gepackt wurden. Hierbei werden nicht gepackte Dateien ignoriert, aber es ist eine sehr gute Möglichkeit, sich einen Überblick über Dateien zu verschaffen, die seit der Installation geändert wurden und Teil des Basissystems sind. Sie enthalten auch ein Flag, das angibt, ob sie als Konfigurationsdateien gelten.
Beispielsweise:
".Bashrc" und "yum-updatesd.conf" sind also "Konfigurationsdateien", deren Größe, Zeit und MD5-Prüfsumme geändert wurden. "rdate" hat den Modus gewechselt ...
Die RPM-Datenbank ist eine sehr nützliche Sache.
quelle