[Bash] : comparer un fichier/répertoire de deux serveurs différents avec ssh

Print Friendly, PDF & Email

Pour les sysadmin c’est un besoin récurrent : comment comparer deux fichiers de conf sur deux serveurs différents ?

Pour réaliser cela on va associer ssh et la commande diff. C’est vrai que diff est assez magique pour comparer deux fichiers et voir rapidement où sont les différences.

Par exemple nous sommes sur le serveur n°2 et nous voulons comparer sa conf avec le serveur n°1 :

diff -y <(ssh utilisateur@serveur1 cat /etc/monfichier) <(cat /etc/monfichier)

Donc :

  • on utilise diff -y pour comparer ligne à ligne
  • on fait un ssh pour ouvrir le fichier distant

Et si nous voulions comparer le contenu de deux répertoires de la même manière ?

diff -y <(ssh utilisateur@serveur1 find /etc/monrepertoire | sort) <(find /etc/monrepertoire | sort)

Là on ajoute donc un find pour lister les fichiers du répertoire puis on classe la sortie dufind grâce à un sort.

man person legs grass

Photo by Gratisography on Pexels.com

 

Découvrez  [Bash] : Comment scripter pour définir un argument (ou plusieurs) par défaut ?