Comment exécuter plusieurs commandes sur plusieurs serveurs Linux

Comment exécuter plusieurs commandes sur plusieurs serveurs Linux

Si vous gérez plusieurs serveurs Linux et que vous souhaitez exécuter plusieurs commandes sur tous les serveurs Linux, mais vous n'avez aucune idée de la façon de le faire. Il n'est pas nécessaire de s'inquiéter, dans ce simple guide de gestion des serveurs, nous vous montrerons comment exécuter plusieurs commandes sur plusieurs serveurs Linux simultanément.

Pour réaliser, vous pouvez utiliser le programme PSSH (parallèle SSH), un utilitaire de ligne de commande pour exécuter SSH en parallèle sur un certain nombre d'hôtes. Avec lui, vous pouvez envoyer une entrée à tous les processus SSH, à partir d'un script shell.

Exigences

  1. Installez PSSH pour exécuter les commandes sur plusieurs serveurs Linux distants
  2. Vous devez utiliser l'authentification sans mot de passe SSH pour tous les serveurs distants.

Créer un script shell

Par conséquent, vous devez commencer par préparer un script qui contient les commandes Linux que vous souhaitez exécuter sur les différents serveurs. Dans cet exemple, nous rédigerons un script qui collectera les informations suivantes à partir de plusieurs serveurs:

  • Vérifiez la disponibilité des serveurs
  • Vérifiez qui est connecté et ce qu'ils font
  • Répertoriez les 5 meilleurs processus en cours d'exécution en fonction de l'utilisation de la mémoire.

Créez d'abord un script appelé commandes.shot avec votre éditeur préféré.

# commandes VI.shot 

Ensuite, ajoutez les commandes suivantes au script comme indiqué.

#!/ bin / bash ############################################### ################################## #Script Nom: Commandes.SH #Description: Exécutez plusieurs commandes sur plusieurs serveurs #Author: Aaron Kili Kisinga #email: [Protégé par e-mail] ########################## #################################################### ### Echo # Show System System Uptime Uptime Echo # show qui est connecté et ce qu'ils font qui fait qui écho # show top 5 Processe by RAM USAGE PS -EO CMD, PID, PPID,% mem,% CPU --sort = - % mem | Tête -N 6 Exit 0 

Enregistrez le fichier et fermez-le. Ensuite, rendez le script exécutable comme indiqué.

# commandes chmod + x.shot 

Créer un fichier hosts PSSH

Ensuite, ajoutez la liste des serveurs sur lesquels vous souhaitez exécuter les commandes, dans un hôtes.SMS fichier, dans le format [[e-mail protégé]] hôte [: port] ou donnez simplement les adresses IP du serveur.

Mais nous vous suggérons d'utiliser des alias SSH qui peuvent être spécifiés dans .ssh / config Fichier comme expliqué sur la façon de configurer les connexions SSH personnalisées pour simplifier l'accès à distance.

Cette méthode est plus efficace et fiable, elle vous permet de spécifier des options de configuration (telles que le nom d'hôte, l'identification du fichier, du port, du nom d'utilisateur etc…) pour chaque serveur distant.

Voici notre exemple de fichier d'alias Hosts SSH Fichier.k.un fichier de configuration SSH spécifique à l'utilisateur.

# vi ~ /.ssh / config 
SSH HOSTS ALIASES Fichier

Ensuite, créez un hôtes.SMS Fichier, ici, vous pouvez simplement spécifier les alias (noms définis à l'aide du mot-clé hôte dans .fichier ssh / config) comme montré.

# VI HOSTS.SMS 

Ajouter les alias du serveur.

server1 server2 server3 

Exécuter les commandes via un script sur plusieurs serveurs Linux

Maintenant, exécutez ce qui suit psh Commande en spécifiant hôtes.SMS Fichier avec le script qui contient plusieurs commandes à exécuter sur plusieurs serveurs distants.

# hôtes pssh -h.txt -p -i<./commands.sh 

Signification des drapeaux utilisés dans la commande ci-dessus:

  • -H - lit le fichier hosts.
  • -P - dit à PSSH d'afficher la sortie à son arrivée.
  • -je - lit les entrées et envoie à chaque processus SSH.
Exécutez plusieurs commandes sur des serveurs distants

C'est ça! Dans cet article, nous avons montré comment exécuter plusieurs commandes sur plusieurs serveurs dans Linux. Vous pouvez partager toutes les réflexions relatives à ce sujet via la section des commentaires ci-dessous.