Comparer 2 dossiers via ssh
Bonjour,
Je souhaite vérifier que 2 dossiers sur 2 machines différentes sont bien identiques (sous-dossiers et fichiers inclus). Quel est le moyen le plus efficace de faire ça ? (avec rsync ?)
Dans le cas ou ils seraient différents, je voudrais pouvoir afficher les dossiers/sous-dossiers/fichiers qui diffèrent aussi.
Merci d'avance.
Je souhaite vérifier que 2 dossiers sur 2 machines différentes sont bien identiques (sous-dossiers et fichiers inclus). Quel est le moyen le plus efficace de faire ça ? (avec rsync ?)
Dans le cas ou ils seraient différents, je voudrais pouvoir afficher les dossiers/sous-dossiers/fichiers qui diffèrent aussi.
Merci d'avance.
1 réponse
-
Bonjour,
Pour clarifier la réponse qui suit, je vais nommer les machines comme suit :-
client
: la machine qui fait office de client ssh ; -
serveur1
: l'une des deux machines dont tu veux récupérer l'arborescence/home/toto
, et qui dispose d'un serveur ssh, à laquelle tu peux accéder avec le profillogin1
et qui dispose de droits suffisants pour explorer/home/toto
; -
serveur2
: l'une des deux machines dont tu veux récupérer l'arborescence/home/tata
, et qui dispose d'un serveur ssh, à laquelle tu peux accéder avec le profillogin2
et qui dispose de droits suffisants pour explorer/home/tata
;
Non,rsync
n'est pas nécessaire et est "overkill" car cela va t'obliger à rapatrier au niveau de la machine client l'intégralité des deux dossiers à comparer, qui peuvent potentiellement être très volumineux.
La manière la plus propre est d'utiliserssh
+find
(ouparallel-ssh
) au niveau de client, stocker le résultat dans un fichier, puis comparer les deux fichiers ainsi créés :
ssh login1@server1 find /home/toto > /tmp/server1_toto ssh login2@server2 find /home/tata > /tmp/server2_tata diff /tmp/server1_toto /tmp/server2_tata rm -f /tmp/server1_toto /tmp/server2_tata
(Remplaceserveur1
(resp.serveur2
) par son FQDN ou son adresse IP).
Afin éviter d'avoir à saisir les mots de passe nécessaires à ssh (au moment de se connecter àserveur1
etserveur2
), il est d'utiliser une clé ssh. Il suffit de copier ta clé ssh par exemple avecssh-copy-id
, puis de lancerssh-add
au moment où tu ouvres ta session utilisateur surclient
. Par la suite, tu peux même désactiver les authentifications par mot de passe au niveau des serveurs ssh afin de mieux les sécuriser. Pour plus de détails, tu peux regarder ce tutoriel.
Bonne chance -