SEDとPDSH:クラスタのスレーブノードのファイルに行を追加する

SEDとPDSH:クラスタのスレーブノードのファイルに行を追加する

クラスタの32個のスレーブノードにある各ファイルの内容を含む新しい行を追加しようとしていますGATEWAY=10.0.10.1/etc/sysconfig/network
コンテンツ。私はこれを読んだsedを使用して行を挿入する方法に関する投稿

これはローカルファイルに行を追加するのに有効です。

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

これは、ノード32のファイルを見るのに適している。

pdsh -w n032 cat test/test1

これは失敗しました私の場合は、ノード32のファイルに1行を追加したいと思います。

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

次のエラーが発生します。

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

変更したいファイルがあります。

pdsh -w n032 ls -al test/test1

上記のコマンドは、私が所有しており、読み取りおよび書き込み(rw)権限があることを示しています。

なぜ失敗したのですか?

ベストアンサー1

いいですね。次のコマンドラインを試してください。

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

ただ行ってくださいssh。ローカルで(ノード上で)単純なコマンドを実行する場合は、この行でも実行する必要があります。

quoteなしで試してみると、'ローカルシェル(入力システムの現在のシェルにある)が次の行のノードに対して展開され変換されます。

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

あなたはそのエラーを読みます。

たぶんあなたは興味深いでしょう。この章またはこの他

おすすめ記事