Scopri come eseguire lo stesso comando ripetitivo su più server Linux dalla macchina Windows. Questo trucco utilizza l'utilità 'plink' dello stucco della riga di comando.

Una delle principali preoccupazioni per sysadmin è eseguire lo stesso comando ripetitivo su più server Linux in infra quando non è disponibile uno strumento centralizzato. In questo post, vedremo come eseguire un comando su più server Linux in una volta sola. Non è necessario salvare la password del tuo account da nessuna parte e nemmeno avere expect
funzione nella tua macchina sorgente!
Prerequisito
- Macchina Windows con plink scaricato su di essa (scarica plink qui)
- I server Linux dovrebbero essere raggiungibili da un computer Windows
Come farlo
plink è un'utilità della riga di comando di stucco. Tramite plink potremo connetterci al server fornendo IP, username, password sulla riga di comando. plink può essere invocato da un prompt dei comandi su 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>
Vai al prompt dei comandi di Windows digitando cmd
in una finestra di esecuzione (tasto Windows + r). Passare alla cartella in cui è conservato l'eseguibile plink e quindi digitare il comando plink come sopra.
- ssh:protocollo per la connessione
- id@IP server
- pw:password dell'account
- Comandi da eseguire sul server Linux tra parentesi.
Ecco come funziona plink. Ora per eseguire lo stesso comando su più server vediamo sotto l'esempio. Ci collegheremo a 3 server ed eseguiremo il comando hostname &date.
Innanzitutto, inserisci tutti e 3 gli indirizzi IP del server in un unico file ip_list.txt
. Quindi esegui il ciclo for semplice su quel file come di seguito nel prompt dei comandi. Questo è uno script batch molto semplice.
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>
Ecco! tutto l'output dei comandi del server è lì! Comandi eseguiti su tutti i server in una volta sola.
Questo è molto utile quando devi controllare alcuni output a riga singola da tutti i server o se vuoi eseguire comandi di aggiornamento dell'account su tutti i server in una volta sola.