2013-07-05 2 views
0

Я пытаюсь определить членов кластера серверов за вычетом машины, в которой работает этот скрипт. Файл «/ servers» является динамическим файлом, который контролируется приложением. Члены кластера находятся в самом низу файла в этом формате: host1.domain.com https://host1.domain.com:444Исключить имя хоста из результатов

У меня есть этот фрагмент из другого скрипта, который запрашивает все члены кластера. Он дает мне серверы в формате FQDN. Что я хочу сделать, так это то, что мой вывод исключает текущую машину. Как я могу заставить его искать файл «/ servers» и отображать члены кластера! = $ Hostname, так сказать?

# !/bin/bash 
CLUSTER=$(awk '{ print $1 }' /servers | grep domain.com) 

ответ

1

AWK может делать то, что делает Grep, так строить, что:

CLUSTER=$(
    awk -v hostname=$(hostname) -v domain="domain.com" ' 
     $1 ~ domain && $1 !~ hostname {print $1} 
    ' /servers 
) 
+0

Это сработало, и вы ответили очень быстро. Спасибо! Однако я нашел дополнительный способ сделать это, прежде чем увидел, что вы ответили. servers = $ (awk '{print $ 1}'/servers | grep domain.com | grep -v "$ {HOSTNAME}") – 014

Смежные вопросы