63 Stimmen

Wie man Verzeichnisse über ssh vergleicht

Ich versuche, ein Verzeichnis auf dem lokalen Host mit einem Verzeichnis auf einer entfernten Linux-Maschine rekursiv zu vergleichen. Wenn ich jedoch den nächsten Befehl ausführe:

diff -r 'ssh admin@10.0.0.10:/home/admin' /home/admin

funktioniert es nicht und sagt:

diff: ssh admin@10.0.0.10:/home/admin: Datei oder Verzeichnis nicht gefunden

Was ist der richtige Weg, um rekursiv den Inhalt der Verzeichnisse zu vergleichen?

Vielen Dank im Voraus

0voto

SebMa Punkte 3101

Ich verwende | less am Ende des Befehls für interaktive Passwortabfragen und sdiff, weil es einfacher zu lesen ist als diff :

Also zwischen lokal und remote, gib ein :

sdiff -s <(find $dir -printf "%p\t%s\n" | sort) <(ssh server1 find $dir -printf '"%p\t%s\n"' | sort) | less

und zwischen zwei Servern, gib ein :

sdiff -s <(ssh server1 find $dir -printf '"%p\t%s\n"' | sort) <(ssh server2 find $dir -printf '"%p\t%s\n"' | sort) | less

wo $dir der vollständige Verzeichnispfad ist, den du vergleichen möchtest.

-1voto

Hanan Shteingart Punkte 7431

Ich finde Krusader für solche Aufgaben sehr nützlich, falls Sie eine GUI benötigen. Siehe https://www.linux.com/news/synchronize-directories-komparator-and-kdiff3 für weitere Details http://krusador.org.

Beispiel Ordnervergleich

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X