Сценарий оболочки не может проанализировать список хостов и неизвестный хост - PullRequest
0 голосов
/ 07 октября 2019

У меня есть скрипт, который я пытаюсь запустить. Целью этого скрипта является запуск одной или нескольких команд в списке серверов. При запуске сценарий не может выполнить синтаксический анализ файла hosts и выдает ошибку:

ssh: не удалось разрешить имя узла или имя сервера, либо он не известен

while read host;
do
echo server: $host
sshpass -p 'password'   ssh -o "StrictHostKeyChecking no" admin@$host  'command'
done < /path/to/hosts.txt

hosts.txt содержит список IP-адресов узлов, которым необходимо подключиться, в следующем формате:

server 1
server 2
server 3

Я попытался указать IP-адреса серверов в "" и '' и; и ,, но все они выдают одну и ту же ошибку.

Может кто-нибудь объяснить, что я здесь делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

@ Сайрус и @ Гордон Дэвиссон спасибо -n решили проблему. такое простое исправление, я удивлен, что не видел этот пост здесь раньше, несмотря на много поисков. думаю, я не правильно это сформулировал. Спасибо всем за вклад.

0 голосов
/ 07 октября 2019

Пожалуйста, проверьте, правильно ли обрабатывается переменная $ host. Кроме того, в вашем hosts.txt есть две записи в каждой строке. Что это означает?

Я создал образец сценария для анализа разделенных пробелами аргументов

Входной файл: hosts.txt

enter image description here

Вывод сценария:

enter image description here

#!bin/sh
while IFS=' ', read hostname ipaddress;
do
echo server: $ipaddress
done < hosts.txt
...