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.