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.