Niveau :      
Résumé : dsh -g cluster "echo Bonjour"

Avez-vous déjà eu à lancer la même commande sur plusieurs machines ? Si oui, cet article est fait pour vous. Regardez aussi cet autre article d'ebzao.

dsh.png

Konsole

Tout d'abord, le premier outil, bien sympathique si vous avez peu de machines et si vous voulez lancer une commande interactive (par exemple vi).

Le terminal de kde "konsole" dispose d'une fonction bien utile qui est la diffusion de l'entrée utilisateur à toutes les sessions.

Pour lancer une commande sur plusieurs machines, ouvrez plusieurs onglets dans konsole, sur chaque onglet connectez-vous à une machine. Puis mettez-vous sur le premier onglet et sélectionnez "diffusion de l'entrée à toutes les sessions" dans le menu "Affichage".

A partir de maintenant, toute touche que vous taperez dans le premier onglet (et seulement lui) sera rediffusée sur tous les onglets et donc sur toutes les machines.

Attention tout de même car rien ne vous indique que ce que vous ferez sera identique sur toutes les machines. Prenons l'exemple d'un éditeur quelconque. Si sur l'une des machines le fichier à éditer est légèrement différent, il se peut que vous éditiez la mauvaise ligne. De plus, évitez d'utiliser les raccourcis permettant de revenir aux précédentes commandes, rien ne prouve que ce seront les mêmes partout. Il faut donc être vigilant et vérifier régulièrement la situation sur tous les onglets. Une bonne connaissance des raccourcis vous sera utile.

Dsh

Une autre solution qui peut être utilisée sur un bien plus grand nombre de machines est dsh.

Dsh permet de lancer une commande identique sur un groupe de machines. Il faut préalablement avoir configuré ces groupes de machines dans la configuration de dsh. Pour cela, listez simplement les machines dans le fichier $(HOME)/.dsh/group/mongroupe, une machine par ligne. Il est aussi possible de spécifier la liste des machines au coup par coup en ligne de commande, mais c'est très rapidement fatigant.

Ensuite, il suffit de langer la commande :

$ dsh -g mongroupe 'echo $HOSTNAME'

Par défaut dsh lance ses commandes séquentiellement et le nom de la machine est ajouté devant chaque ligne de sortie. Il est possible grâce à l'option -c de lancer toutes les commandes simultanément si besoin.

L'option -m permet d'ajouter des machines au groupe à la volée.

Notez que dsh permet une interaction simple (stdin) au besoin (l'option -i peut vous être utile).