-1

У меня есть лаборатория и в том, что коллекция компьютеров Linux подключена к локальной сети. Я хочу, как написать сценарий оболочки, чтобы закрыть все ПК, когда мы запускаем этот сценарий оболочки.

2 ответа2

1

Поместите имена хостов или IP-адреса в файл с именем inventory.txt следующим образом:

computer1
computer2
192.168.1.1

Используйте этот скрипт:

while read host; do
    ssh root@${host} shutdown -h now
done < inventory.txt
1

Я извиняюсь, мне не разрешают добавлять комментарии (недостаточно высокая репутация?) поэтому, к сожалению, придется опубликовать это как ответ

Мне тоже любопытно, почему за ответ тоже проголосовали. В том, что отвечает @Cristian, есть много достоинств, и я согласен, что если у OP нет демона SSH, он либо заявит, что ему нужен обходной путь, либо он поймет, что ему нужно установить его. Учитывая, что большинство ответов для этого типа вещей использует демон SSH, я думаю, что это хороший ответ.

При этом я также согласен, что вы должны использовать root для этого и использовать аутентификацию по ssh-ключу. Это лучший и самый безопасный ответ. Конечно, вы не используете пароль в сценарии ssh - это сложнее (вероятно, потребуется использовать ожидаемое) и менее безопасно.

Я не знаю об использовании пользователя без полномочий root для выключения питания / перезагрузки. Используя отправленную вами ссылку, вы понимаете, что пользователь sudo настроен на отсутствие пароля, а затем выключает компьютер. Это означает, что любой пользователь, который знает имя пользователя, может выполнить sudo для этого пользователя и выключить его. Это то, что вы действительно хотите?

Снова извиняюсь, что это опубликовано как отдельный ответ - я хочу добавить его в качестве комментария к ответу @ Cristian, так как его ответ - тот, за который я бы проголосовал

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .