shell脚本新增或修改hadoop的xml配置文件
程序员文章站
2022-07-12 16:15:13
...
shell自动化部署组件的时候对文件字符串处理配置文件的需求比较大,部署hadoop处理如下格式xml的量是非常多的:
以下是新增或者修改yarn.resourcemanager.ha.rm-ids节点的值
<property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property>
以下是新增或者修改yarn.resourcemanager.ha.rm-ids节点的值
#!/bin/bash filename="/hadoop-2.7.1/etc/hadoop/yarn-site.xml" key="yarn.resourcemanager.ha.rm-ids" value="rm1,rm2" key=${key//\//\\/} key=${key//\./\\.} key=${key//\:/\\:} value=${value//\:/\\:} value=${value//\//\\/} value=${value//\./\\.} regex="<name>\s*${key}\s*<\/name>" #echo "$regex" grep -q "$regex" $filename&&isExist="yes"||isExist="no" if [ $isExist = "yes" ];then regex2="(${regex}\n*\s*<value>).*?(<\/value>)" sed -i -r '/'"${regex}"'/{N;s/'"${regex2}"'/\1'"${value}"'\2/g}' $filename #sed -i -r '/'"${regex}"'/{N;s/'"${regex2}"'/'"${value}"'/g}' $filename fi if [ $isExist = "no" ];then sed -i 's/^<\/configuration>/<property>\n<name>'"${key}"'<\/name>\n<value>'"${value}"'<\/value>\n<\/property>\n&/' $filename fi
上一篇: sshd_config无密访问的处理
下一篇: sshd_config无密访问的处理