Баш |GREP список имен хостов |Хотя и для цикла - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь получить / получить несколько ключевых значений из файла свойств.Я могу получить его, используя отдельный сервер - передавая полное имя хоста.

Рабочий пример :

for i in hostname1; do
    echo $i
    ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties"
done

Вывод :

endpoint.address=http://intserver-host/service/searchQuantity

Если я хочу найти список имен хостов (hostname1 to hostname50), что мне следует использовать?Я попытался использовать цикл while и for, но это не сработало.

Использование цикла while и for не работает:

server="hostname"
count=1
servername="${server}$count"
echo "Server $servername"

echo "Entering into while loop"

while [  $count -lt 50 ]; do
    for i in servername; do
        echo $i
        ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties"
    done
    let count=$((count+1))
done

Результат:

Error: unknown servername  :|

Есть ли трюк, о котором я не знаю?Ваша помощь / указатели оценены!

1 Ответ

0 голосов
/ 25 октября 2018
for i in servername

должно быть

for i in $servername

Если вы исправите это, вы увидите, что $servername не меняет каждую итерацию.Недостаточно установить его один раз в верхней части скрипта.Вам необходимо обновлять его каждый раз в начале цикла.

while [ $count -lt 50 ]; do
    servername="${server}$count"
    echo "$servername"
    ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
    let count=$((count+1))
done

Вы можете переключиться на более простой цикл for в этой точке.

for ((i = 1; i <= 50; i++)); do
    servername="$server$i"
    echo "$servername"
    ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
done

Вы также можете выполнить циклнапрямую через имена серверов, если хотите.

for servername in "$server"{1..50}; do
    echo "$servername"
    ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
done
...