一個生產的shell腳本
阿新 • • 發佈:2017-07-22
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腳本