Recherche de site Web

PSSH - Exécuter des commandes sur plusieurs systèmes Linux distants


Il ne fait aucun doute qu'OpenSSH est l'un des outils les plus utilisés et les plus puissants disponibles pour Linux, qui vous permet de vous connecter en toute sécurité à des systèmes Linux distants via un shell et vous permet de transférer des fichiers en toute sécurité vers et depuis des systèmes distants.

Mais le plus gros inconvénient de OpenSSH est que vous ne pouvez pas exécuter la même commande sur plusieurs hôtes en même temps et OpenSSH n'est pas développé pour effectuer de telles tâches.

C'est là que l'outil Parallel SSH ou PSSH est utile, est une application basée sur Python, qui vous permet d'exécuter des commandes sur plusieurs hôtes en parallèle en même temps.

L'outil PSSH comprend des versions parallèles de OpenSSH et des outils associés tels que :

  • pssh – est un programme permettant d'exécuter ssh en parallèle sur plusieurs hôtes distants.
  • pscp – est un programme permettant de copier des fichiers en parallèle sur plusieurs hôtes.
  • prsync – est un programme permettant de copier efficacement des fichiers sur plusieurs hôtes en parallèle.
  • pnuke – tue les processus sur plusieurs hôtes distants en parallèle.
  • pslurp – copie les fichiers de plusieurs hôtes distants vers un hôte central en parallèle.

Ces outils conviennent aux administrateurs système qui travaillent avec de grandes collections de nœuds sur un réseau.

Installez PSSH ou Parallel SSH sous Linux

Dans ce guide, nous examinerons les étapes pour installer la dernière version du programme PSSH (c'est-à-dire la version 2.3.1) sur les distributions basées sur RHEL telles que Fedora, CentOS Stream. , Rocky & AlmaLinux et les distributions basées sur Debian telles que Ubuntu et Linux Mint à l'aide de la commande pip.

La commande pip est un petit programme (remplacement du script easy_install) permettant d'installer et de gérer l'index des packages logiciels Python.

Sur les distributions basées sur RHEL

Sur les distributions RHEL, vous devez d'abord installer le package pip (c'est-à-dire python-pip) sur votre système pour installer le PSSH programme utilisant yum ou dnf.

yum install python-pip
OR
dnf install python-pip

Une fois que vous avez installé l'outil pip, vous pouvez installer le package pssh à l'aide de la commande pip, comme indiqué ci-dessous.

pip install pssh  

Sur les distributions basées sur Debian

Sur les distributions basées sur Debian, l'installation de pssh à l'aide de la commande pip prend une minute.

sudo apt install python-pip
sudo pip install pssh

Comment utiliser pssh sous Linux ?

Lorsque vous utilisez pssh, vous devez créer un fichier hôte avec le nombre d'hôtes ainsi que l'adresse IP et le numéro de port dont vous avez besoin pour vous connecter aux systèmes distants à l'aide de pssh.

Les lignes du fichier hôte se présentent sous la forme suivante et peuvent également inclure des lignes vides et des commentaires.

192.168.0.10:22
192.168.0.11:22

Exécuter une seule commande sur plusieurs serveurs Linux

Vous pouvez exécuter n'importe quelle commande unique sur différents ou plusieurs hôtes Linux sur un réseau en exécutant une commande pssh. Il existe de nombreuses options à utiliser avec pssh, comme décrit ci-dessous :

Nous allons examiner quelques façons d'exécuter des commandes sur un certain nombre d'hôtes en utilisant pssh avec différentes options.

  • Pour lire le fichier hôte, incluez l'option -h host_file-name ou --hosts host_file_name.
  • Pour inclure un nom d'utilisateur par défaut sur tous les hôtes qui ne définissent pas d'utilisateur spécifique, utilisez l'option -l username ou --user username.
  • Vous pouvez également afficher la sortie standard et l'erreur standard à mesure que chaque hôte se termine. En utilisant l'option -i ou --inline.
  • Vous souhaiterez peut-être que les connexions expirent après le nombre de secondes donné en incluant l'option -t number_of_seconds.
  • Pour enregistrer la sortie standard dans un répertoire donné, vous pouvez utiliser l'option -o /directory/path.
  • Pour demander un mot de passe et l'envoyer à SSH, utilisez l'option -A.

Voyons quelques exemples et utilisation des commandes pssh :

Exécuter des commandes sur plusieurs hôtes Linux

1. Pour exécuter echo « Hello TecMint » sur le terminal de plusieurs hôtes Linux par l'utilisateur root et demander le mot de passe de l'utilisateur root, exécutez cette commande ci-dessous.

Important : N'oubliez pas que tous les hôtes doivent être inclus dans le fichier hôte.

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

Remarque : Dans la commande ci-dessus, « pssh-hosts » se trouve un fichier avec la liste de l'adresse IP et du numéro de port SSH du serveur Linux distant. que vous souhaitez exécuter des commandes.

Rechercher l'utilisation du disque de plusieurs hôtes Linux

2. Pour connaître l'utilisation de l'espace disque sur plusieurs serveurs Linux de votre réseau, vous pouvez exécuter une seule commande comme suit.

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
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

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
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

Trouver la disponibilité de plusieurs hôtes Linux

3. Si vous souhaitez connaître la disponibilité de plusieurs serveurs Linux en une seule fois, vous pouvez exécuter la commande suivante.

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

Vous pouvez consulter la page de saisie manuelle de la commande pssh pour obtenir de nombreuses autres options et découvrir d'autres façons d'utiliser pssh.

pssh --help

Résumé

Parallel SSH ou PSSH est un bon outil à utiliser pour exécuter des commandes dans un environnement où un administrateur système doit travailler avec de nombreux serveurs sur un réseau. . Cela facilitera l’exécution des commandes à distance sur différents hôtes d’un réseau.

J'espère que vous trouverez ce guide utile et en cas d'informations supplémentaires sur pssh ou d'erreurs lors de son installation ou de son utilisation, n'hésitez pas à poster un commentaire.