SED e PDSH: adicionando uma linha a um arquivo em um nó escravo em um cluster

2

Eu estou tentando adicionar uma nova linha contendo GATEWAY=10.0.10.1 ao arquivo /etc/sysconfig/network em cada um dos 32 nós escravos em um cluster.
Eu li esta postagem sobre como inserir uma linha com sed .

Isso funciona para eu adicionar uma linha a um arquivo local:

sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1

Isso funciona para mim visualizando um arquivo no nó 32:

pdsh -w n032 cat test/test1

Isso falha para eu tentar adicionar uma linha a um arquivo no nó 32:

pdsh -w n032 sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1

Com este erro:

n032: sed: -e expression #1, char 2: extra characters after command
pdsh@admin: n032: ssh exited with exit code 1

Eu possuo o arquivo que estou tentando alterar:

pdsh -w n032 ls -al test/test1

O comando acima mostra que eu o possuo e tenho permissões de leitura e gravação ( rw ).

Por que isso falha?

    
por Pip 10.07.2014 / 09:42

1 resposta

4

Ok, tente com esta linha de comando:

pdsh -w n032  sed -i.bak -e '"\$aGATEWAY=10.0.10.1"' test/test1;

Com ssh funciona. Se funciona localmente (nos nós) o comando simple, deve funcionar esta linha também.

Quando você tentar sem aspas ' , o shell local (no shell atual no computador de entrada) expandirá e transformará o nó na linha:

sed -i.bak -e =10.0.10.1 test/test1

e você lerá esse erro.

Talvez você possa achar interessante, por exemplo este capítulo ou este outro .

    
por 10.07.2014 / 11:21