我试图添加包含一个新行GATEWAY=10.0.10.1到/etc/sysconfig/network集群中的每个32个从节点的文件。
我阅读了这篇关于如何使用 sed 插入一行的文章。
这适用于我向本地文件添加一行:
sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1
Run Code Online (Sandbox Code Playgroud)
这适用于我查看节点 32 上的文件:
pdsh -w n032 cat test/test1
Run Code Online (Sandbox Code Playgroud)
这对我尝试在节点 32 上的文件中添加一行失败了:
pdsh -w n032 sed -i.bak -e "\$aGATEWAY=10.0.10.1" test/test1
Run Code Online (Sandbox Code Playgroud)
出现此错误:
n032: sed: -e expression #1, char 2: extra characters after command
pdsh@admin: n032: ssh exited with exit code 1
Run Code Online (Sandbox Code Playgroud)
我拥有要更改的文件:
pdsh -w n032 ls -al test/test1
Run Code Online (Sandbox Code Playgroud)
上面的命令显示我拥有它并且拥有读写 ( rw) 权限。
为什么会失败?
好的,试试这个命令行:
pdsh -w n032 sed -i.bak -e '"\$aGATEWAY=10.0.10.1"' test/test1;
Run Code Online (Sandbox Code Playgroud)
有了ssh它。如果它在本地(在节点上)运行简单命令,它也应该在这一行运行。
当您尝试不使用 quote 时',本地外壳(在入门计算机上的当前外壳上)将为节点扩展和转换以下行:
sed -i.bak -e =10.0.10.1 test/test1
Run Code Online (Sandbox Code Playgroud)
你会读到那个错误。
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |