2015-03-29 2 views
0

Я пытаюсь настроить MapR кластера:Синтаксического файл по IP-адресу - Баш

./configure.sh -C 10.60.63.6, 10.226.86.24, 10.144.64.75 -Z 10.226.86.24 -N mycluster —create-user 

IP-адрес приходит из /etc/hosts:

10.60.63.6  dgnode-1 dgnode-1.dg.local 
    10.144.64.75 dgnode-2 dgnode-2.dg.local 
    10.226.98.24 namenode namenode.dg.local 

Что мне нужно, это bash сценария который анализирует этот файл для создания команды, подобной приведенной выше. Я не очень хорош в bash, как я могу это сделать? картина выглядит так:

/opt/mapr/server/configure.sh -C <all_nodes> -Z <namenode> -HS <namenode> -N MyCluster. 

Вот пример /etc/hosts: корень @ IP-10-226-98-24:/OPT/mapr/сервер # кошка/и т.д./хостов 127,0. 0,1 локальный

# The following lines are desirable for IPv6 capable hosts 
    ::1 ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
    ff02::3 ip6-allhosts 

    ## vagrant-hostmanager-start 
    10.60.63.6 dgnode-1 dgnode-1.dg.local 
    10.144.64.75 dgnode-2 dgnode-2.dg.local 
    10.226.98.24 namenode namenode.dg.local 
    ## vagrant-hostmanager-end 

ответ

0

Используя этот AWK:

awk '/## vagrant-hostmanager-start/{ 
    a=1; 
    next 
    } 
    /## vagrant-hostmanager-end/{ 
    exit 
    } 
    !a{ 
    next 
    } 
    a==1{ 
    a++; 
    ips=$1; 
    next 
    } 
    a>1{ 
    ips=ips ", " $1 
    } 
    $2=="namenode"{ 
    nn=$1 
    } 
    END { 
    printf "/opt/mapr/server/configure.sh -C %s -Z %s -HS %s -N MyCluster\n", 
      ips, nn, nn 
    }' /etc/hosts 

/opt/mapr/server/configure.sh -C 10.60.63.6, 10.144.64.75, 10.226.98.24 -Z 10.226.98.24 -HS 10.226.98.24 -N MyCluster

+0

после этого я хотел бы выполнить эту команду ... как мне это сделать? – cybertextron

+0

Я не работал хорошо: 'root @ ip-10-226-98-24:/opt/mapr/server # awk 'NR == 1 {ips = $ 1} NR> 1 {ips = ips", "$ 1 } $ 2 == "namenode" {nn = $ 1} END {printf "/opt/mapr/server/configure.sh -C% s -Z% s -HS% s -N MyCluster \ n", ips, nn, nn } '/ etc/hosts /opt/mapr/server/configure.sh -C 127.0.0.1,, #, :: 1, fe00 :: 0, ff00 :: 0, ff02 :: 1, ff02 :: 2, ff02 :: 3,, ##, 10.60.63.6, 10.144.64.75, 10.226.98.24, ##, -Z 10.226.98.24 -HS 10.226.98.24 -N MyCluster' – cybertextron

+0

Это работает с исходным файлом hosts, который имеет линии между '## vagrant-hostmanager-start' и' ## vagrant-hostmanager-end'. – anubhava

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