2016-11-03 11 views
0

Я хочу добиться перезагрузки нескольких удаленных серверов без необходимости входа в систему по отдельности. Итак, я увольняю следующее, надеясь, что он прыгнет на сервер 93, 95 и 97 и перезагрузится каждый.Как перезагрузить несколько удаленных машин через ssh в одной команде 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 

Однако то, что я в конечном итоге получаю, когда первый сервер перезагружается он разрывает соединение и не прыгать на следующий сервер. Что я делаю не так?

+0

Вы можете войти как корень через SSH. Большой большой ой. Никогда не позволяйте этому. – Seb

+0

Абсолютно верно, вы. Я бы не стал, если бы это была общественная сеть. К счастью это сидит так далеко от общественного достояния, что я в порядке с этой настройкой на данный момент. Но вопрос все еще остается, где моя логика терпит неудачу? –

ответ

0

За неимением лучшей альтернативы я нашел следующий сценарий работы:

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