Comment lancer une commande sur plusieurs serveurs Linux en même temps ?

par Korben -

Si vous gérez plusieurs serveurs, sachez qu’il existe une suite d’outils qui s’appelle PSSH et qui permet grâce à différents outils d’exécuter une seule et même commande, simultanément sur toutes vos machines.

  • pssh permet de lancer des instances de SSH en parallèle
  • pscp permet de copier des fichiers en parallèle
  • prsync permet de synchroniser des fichiers sur plusieurs machines en parallèle
  • pnuke permet de shooter des processus en simultané
  • pslurp permet de récupérer des fichiers en provenance de plusieurs serveurs, vers une machine hôte principal.

Pour installer PSSH sous Linux, il suffit d’utiliser la commande pip (Vous pouvez installer pip comme ceci : sudo apt-get install python-pip) suivante :

sudo pip install pssh

Ensuite pour utiliser pip, vous devez créer un fichier host qui contiendra la liste des IPs de toutes les machines à connecter. Ex :

192.168.0.10:22

192.168.0.11:22

Puis appeler ce fichier avec le paramètre -h dans vos commandes pssh.

Par exemple, si je veux connaitre l’état de l’espace disque sur toutes mes machines, je vais faire un petit “df -hT” simultanée comme ceci :

pssh -h pssh-hosts -l root -A -i “df -hT”

Le paramètre -h me permet de préciser quel fichier host je souhaite utiliser, le paramètre -l permet d’indiquer le nom d’utilisateur à utiliser, le paramètre -A permet de demander le mot de passe des machines et le paramètre -i permet d’afficher les infos et les messages d’erreur pour chaque hôte, les uns à la suite des autres.

Et voici ce que la commande doit renvoyer :

Warning: do not enter your password if anyone else has superuser privileges or access to your account. Password: <strong>[1] 16:04:18 [SUCCESS] 192.168.0.10:22</strong> Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 38G 4.3G 32G 12% / tmpfs tmpfs 499M 0 499M 0% /dev/shm /dev/sda1 ext4 190M 25M 156M 14% /boot <strong>[2] 16:04:18 [SUCCESS] 192.168.0.11:22</strong> Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 30G 9.8G 20G 34% / devtmpfs devtmpfs 488M 0 488M 0% /dev tmpfs tmpfs 497M 148K 497M 1% /dev/shm tmpfs tmpfs 497M 7.0M 490M 2% /run tmpfs tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 166M 332M 34% /boot

Pratique non ?

Vous trouverez plus d’infos sur PSSH ici.

Source