一个生产的shell脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个生产的shell脚本相关的知识,希望对你有一定的参考价值。
#!/bin/bash #Created: 2017.07.21 #Author: molewan #Description: help ERP app upgrade ###########################################################脚本说明########################################################### #a、将需要添加的数据内容拷贝到/root/$DBID.txt文件中,例如DBID为1722,保存的文件,文件名就配置为1722.txt(手动操作) #b、从/root/$DBID.txt文件中,筛选出jdbc的信息-->$OLD_DBID_JDBC_URL #c、从/www/erp/tomcat/$DBID/conf/Catalina/localhost文件中,例如w$DBID.xml文件中筛选出jdbc的信息-->$DBID_REPORTCONFIG_DIR/$NEW_DBID_JDBC_URL #d、替换/root/$DBID.txt中的数据库用户名,数据库密码以及jdbc的内容,并附加修改后的/root/$DBID.txt内容到reportConfig.xml #e、删除$DBID_DIR/w$DBID.xml中Resource相关的字段对 #f、脚本执行方法:/bin/bash $0 $1 (其中$0为脚本的名称,$1为DBID的数字,例如:/bin/bash /shells/help.sh 1722) ###########################################################脚本说明########################################################### # 1、定义变量 DBID=$1 DBID_DIR=/www/erp/tomcat/$DBID/conf/Catalina/localhost DBID_REPORTCONFIG_DIR=/www/erp/tomcat/$DBID/webapps/w$DBID/WEB-INF OLD_DBID_JDBC_URL=$(grep "jdbc:sqlserver" /root/$DBID.txt |awk -F";" ‘{print $1";"$2}‘) NEW_DBID_JDBC_URL=$(grep ‘jdbc:sqlserver‘ $DBID_DIR/w$DBID.xml|awk -F‘"‘ ‘{print $2}‘) OLD_PASSWORD=$(grep "<password>" /root/$DBID.txt |awk -F"<password>" ‘{print $2}‘|awk -F"</password>" ‘{print $1}‘) # 2、脚本使用方式定义 if [ "$#" -ne "1" ];then echo "usage: /bin/bash $0 $DBID" exit 1 fi # 3、备份配置文件 echo "<----------------------------------开始备份配置---------------------------------->" cp /root/$DBID.txt /root/$DBID.txt.org if [ $? -eq 0 ];then echo "备份$DBID.txt成功" else echo "请检查$DBID.txt的备份" exit 1 fi cp $DBID_DIR/w$DBID.xml $DBID_DIR/w$DBID.xml.org if [ $? -eq 0 ];then echo "备份$DBID_DIR/w$DBID.xml成功" else echo "请检查$DBID_DIR/w$DBID.xml的备份" exit 1 fi cp $DBID_REPORTCONFIG_DIR/reportConfig.xml $DBID_REPORTCONFIG_DIR/reportConfig.xml.org if [ $? -eq 0 ];then echo "备份$DBID_REPORTCONFIG_DIR/reportConfig.xml成功" else echo "请检查$DBID_REPORTCONFIG_DIR/reportConfig.xml的备份" exit 1 fi # 4、替换/root/$DBID.txt的三部分(数据库用户名,数据库密码以及jdbc的内容) ##a、修改/root/$DBID.txt中数据库账号: echo "<----------------------------------开始替换账户---------------------------------->" sed -i ‘s/sa/bysa/g‘ /root/$DBID.txt if [ $? -eq 0 ];then echo "替换账户成功" else echo "替换账号失败" exit 1 fi # #替换2:修改数据库密码(由于我们设置的数据库是统一的,我就没配置变量) echo "<----------------------------------开始密码替换---------------------------------->" sed -i ‘s/‘$OLD_PASSWORD‘/88***88/g‘ /root/$DBID.txt if [ $? -eq 0 ];then echo "密码替换成功" else echo "密码替换失败" exit 1 fi ## 替换3: 修改截取的jdbc echo "<----------------------------------开始jdbc替换---------------------------------->" sed -i "s#${OLD_DBID_JDBC_URL}#${NEW_DBID_JDBC_URL}#g" /root/$DBID.txt if [ $? -eq 0 ];then echo "替换jdbc成功" else echo "替换jdbc失败" exit 1 fi # 5、追加拷贝的内容到reportConfig.xml文件中 echo "<----------------------------------开始追加文件---------------------------------->" cat /root/$DBID.txt>>$DBID_REPORTCONFIG_DIR/reportConfig.xml if [ $? -eq 0 ];then echo "add file successful" else echo "please retry" exit 1 fi # 6、删除配置文件中Resource相关的字段 echo "<----------------------------------开始修改配置---------------------------------->" sed -i ‘/\<Resource/,/\/>$/d‘ $DBID_DIR/w$DBID.xml if [ $? -eq 0 ];then echo "delete resouce OK" else echo "please check" exit 1 fi
本文出自 “冰冻vs西瓜” 博客,请务必保留此出处http://molewan.blog.51cto.com/287340/1949975
以上是关于一个生产的shell脚本的主要内容,如果未能解决你的问题,请参考以下文章