2016-11-03 2 views
0

Ce que je veux faire est de redémarrer plusieurs serveurs distants sans avoir à se connecter individuellement. Donc, je tire le suivant, en espérant qu'il sauterait sur les serveurs 93, 95 et 97 et redémarrer chaque.Comment redémarrer plusieurs machines distantes via ssh dans une seule commande CLI

[[email protected]<home_server> ~]# seq 93 2 97 |xargs -I{} ssh <remoteservernumber_>{} "hostname; reboot" 

The authenticity of host '<remoteservernumber_93 (IP.IP.IP.IP)' can't be established. 
RSA key fingerprint is ... 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'remoteservernumber_93 (IP.IP.IP.IP)' (RSA) to the list of known hosts. 

[email protected]_93's password: 
remoteservernumber_93 
Connection to remoteservernumber_93 closed by remote host. 
xargs: ssh: exited with status 255; aborting 

Cependant, ce que je finis par obtenir est quand le premier serveur est redémarré, il met fin à la connexion et il ne saute pas sur le serveur suivant. Qu'est-ce que je fais mal?

+0

Vous pouvez vous connecter en tant que root via ssh. Big aïe. Ne jamais permettre cela. – Seb

+0

Tout à fait raison, vous êtes. Je ne le ferais pas, si c'était un réseau public. Heureusement, cela se trouve si loin du domaine public que je suis d'accord avec cette configuration pour le moment. Mais la question demeure, où ma logique échoue-t-elle? –

Répondre

0

Faute d'une meilleure alternative que je trouve fonctionne le script suivant:

for i in <server-1> <server-2> ... <server-n> ; do ssh $i "hostname; sudo reboot"; done