GNU/Linux >> Tutoriels Linux >  >> Linux

Exécutez la commande sur plusieurs serveurs Linux à partir de Windows

Apprenez à exécuter la même commande/répétitive sur plusieurs serveurs Linux à partir de la machine Windows. Cette astuce utilise l'utilitaire de ligne de commande "plink".

L'une des principales préoccupations de sysadmin est d'exécuter la même commande/répétitive sur plusieurs serveurs Linux en infra lorsqu'il n'y a pas d'outil centralisé disponible. Dans cet article, nous allons voir comment exécuter une commande sur plusieurs serveurs Linux en une seule fois. Il n'est pas nécessaire d'enregistrer le mot de passe de votre compte nulle part et même pas besoin d'avoir expect fonction dans votre machine source !

Pré-requis

  • Machine Windows sur laquelle plink a été téléchargé (téléchargez plink ici)
  • Les serveurs Linux doivent être accessibles depuis une machine Windows

Comment procéder

plink est un utilitaire de ligne de commande mastic. En utilisant plink, nous pourrons nous connecter au serveur en fournissant l'adresse IP, le nom d'utilisateur et le mot de passe sur la ligne de commande. plink peut être invoqué à partir d'une invite de commande sous Windows.

C:\Users\noname\Desktop>plink -ssh [email protected] -pw password@123 (hostname; date)
testserver
Tue Nov  1 12:54:33 IST 2016

C:\Users\noname\Desktop>

Accédez à l'invite de commande Windows en tapant cmd dans une fenêtre d'exécution (touche windows + r). Accédez au dossier où l'exécutable plink est conservé, puis tapez la commande plink comme ci-dessus.

  • ssh :protocole pour se connecter
  • ID@IP du serveur
  • pw :mot de passe du compte
  • Commandes à exécuter sur le serveur Linux entre accolades.

C'est ainsi que fonctionne plink. Maintenant, pour exécuter la même commande sur plusieurs serveurs, nous voyons l'exemple ci-dessous. Nous allons nous connecter à 3 serveurs et exécuter la commande hostname &date.

Tout d'abord, mettez les 3 adresses IP du serveur dans un seul fichier ip_list.txt . Ensuite, exécutez une simple boucle for sur ce fichier comme ci-dessous dans l'invite de commande. Il s'agit d'un script batch très basique.

C:\Users\noname\Desktop>FOR /F "tokens=1,2* delims=," %G IN (C:\Users\noname\Desktop\ip_list.txt) DO plink -ssh user1@%G -pw password@123 (hostname; date)

testserver
Tue Nov  1 12:54:33 IST 2016

testserver1
Tue Nov  1 12:54:36 IST 2016

testserver2
Tue Nov  1 12:54:39 IST 2016

C:\Users\noname\Desktop>

Voilà! toutes les sorties de commande du serveur sont là ! Commandes exécutées sur tous les serveurs en une seule fois.

Ceci est très utile lorsque vous devez vérifier certaines sorties de ligne de tous les serveurs ou si vous souhaitez exécuter des commandes d'actualisation de compte sur tous les serveurs en une seule fois.


Linux
  1. DSH - Exécutez une commande Linux sur plusieurs hôtes à la fois

  2. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  3. Automatisation de la commande en cours d'exécution sur Linux à partir de Windows à l'aide de PuTTY

  4. Exécutez la commande cd en tant que superutilisateur sous Linux

  5. Nagios :Désactiver les notifications depuis la ligne de commande sous Windows/Linux

Comment accéder aux partitions Linux à partir de Windows 10

Copier un fichier dans plusieurs répertoires à partir de la ligne de commande sous Linux

Comment supprimer une commande de l'historique sous Linux

Comment exécuter plusieurs commandes Linux en une seule commande

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Comment exécuter la commande SUDO dans WinSCP pour transférer des fichiers de Windows vers Linux