1. 程式人生 > >一個生產的shell腳本

一個生產的shell腳本

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腳本