Вопрос Выключить список серверов, указанных в файле


У меня есть список из 17 серверов в этом формате

172.16.1.4      #servername-A
172.16.2.75     #servername-B
172.16.5.53     #servername-C
172.16.5.61     #servername-D 

я хотел бы сценарий, который может ssh / login на каждом из этих серверов и закрывать их, что достаточно просто, но улов в том, что их нужно отключить в определенном порядке, показанном выше (вниз по списку), где каждый перед тем, как начнется следующее закрытие, нужно полностью отключить.


4
2017-08-20 13:54


происхождения


Можно ли вставить крюк отключения на всех этих машинах (кроме последнего)? Это была бы самая безопасная ставка, чтобы утверждать, что они полностью сбиты (почти), прежде чем закрыть следующую строку. «почти» означает, что нет возможности сказать удаленно, независимо от того, работает ли машина, после того как сеть отключена. - David Foerster


ответы:


Может быть:

while read ip rest_of_line; do
    ssh user@$ip sudo poweroff
done < server.file

Команда ssh вернется, когда демон ssh на удаленном сервере будет отключен. Это происходит не тогда, когда машина выключена. Возможно, вы захотите добавить sleep после ssh команда.

Ваш пользователь должен настроить sudo poweroff без необходимости вводить пароль. См. visudo справочная страница.


8
2017-08-20 14:26



Может ли это помочь поставить петлю за команду, которая пинает каждый n секунд и перерывов, когда не получено ответа в течение k секунд? - Christophe De Troyer
@ChristopheDeTroyer: Я бы редактировать что, если Гленн этого не сделает, или опубликуйте свой еще более совершенный ответ! ;-) - Fabby