クラスター内の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のファイルに行を追加しようとすると失敗します:
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
)のアクセス許可を持っていることを示しています。
なぜ失敗するのですか?
次のコマンドラインで試してみてください。
pdsh -w n032 sed -i.bak -e '"\$aGATEWAY=10.0.10.1"' test/test1;
ssh
を使用すると機能します。単純なコマンドがローカル(ノード上)で機能する場合は、この行でも機能するはずです。
引用符なしで試す場合'
、ローカルのシェル(エントリコンピューターの現在のシェル上)は、次の行のノードに対して展開および変換されます。
sed -i.bak -e =10.0.10.1 test/test1
そして、あなたはそのエラーを読むでしょう。