ningleesherry 发表于 2018-8-21 10:42:08

一个生产的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 "" /root/$DBID.txt |awk -F"" '{print $2}'|awk -F"" '{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 ""
  
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 '/\$/d'$DBID_DIR/w$DBID.xml
  
if [ $? -eq 0 ];then
  
echo "delete resouce OK"
  
else
  
echo "please check"
  
exit 1
  
fi


页: [1]
查看完整版本: 一个生产的shell脚本