У меня есть список серверов в текстовом файле. Предположим, что авторизованные ключи все на месте на серверах.

#!/bin/bash
while read server <&3; do #read server names into loop
[[ $server =~ ^[[:space:]]*$ ]] && continue #prevents a empty line in file
    echo "Name read from file - $server"
    #SSH login
    ssh "$server" 
done 3</home/u0146121/Matt/servers.txt

Мои вопросы ...

Правильно ли я ssh? Будет ли все это неинтерактивным?

Примечание. Я бы попробовал это на серверах, но у меня пока нет к ним доступа, и я хочу получить синтаксис прямо перед этим. Я новичок в Bash и SSH.

2 ответа2

0

Я думаю, что это то, что вы ищете https://stackoverflow.com/a/3872762/678611

0

ssh "$ server"

Команда в этой строке является интерактивной. Используйте что-то вроде:

ssh $ server "uname -a; date"

он войдет на сервер, выполнит там uname -a затем date , отключится от сервера и продолжит выполнение скрипта.

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