tomcat自动发布脚本

把myeclipse打包处理的java项目放到/tmp目录下,再执行这个脚本,会达到杀掉tomcat进行,升级前备份,删除旧项目,解压新项目,更改配置,启动进程的功能.可以对多个项目进行升级.

 
  1. #!/bin/bash 
  2. #make by mojigan 
  3. #time 2012-1019 
  4. #version 1.3 
  5. #upgrade the project 
  6.  
  7. #define some value. 
  8. network_dir="/data/webapps/iosm_apps/networkresourcemanage_apps/current" 
  9. network_back="/data/webapps/iosm_apps/networkresourcemanage_apps/backup/networkresource" 
  10. operate_dir="/data/webapps/iosm_apps/operationservice_apps/current" 
  11. operate_back="/data/webapps/iosm_apps/operationservice_apps/backup/operationservice" 
  12. tomcat_progrm="/opt/tomcat/apache-tomcat-6.0.33_iosm" 
  13. instance="apache-tomcat-6.0.33_iosm" 
  14. owner=iosmtomcat 
  15.  
  16. function running(){ 
  17.     b='' 
  18.     for ((i=0;i<=100;i+=2)) 
  19.     do 
  20.             printf "progress:[%-50s]%d%%\r" $b $i 
  21.             sleep 0.2 
  22.             b=#$b 
  23.     done 
  24.     echo 
  25.  
  26. #the user 
  27. user=$(id -un) 
  28. if [ ${
    user} != "$owner" ];then 
  29.     echo "==>the program must run by iosmtomcat<==" 
  30.     exit 1 
  31. fi 
  32.  
  33. #the file must exits. 
  34. operationservice=$(find /tmp -type f -mtime -1  -user ${owner} -name "operationservice.war"
  35. networkresource=$(find /tmp -type f -mtime -1  -user  ${owner} -name "networkresourcemanage.war"
  36. if [ -z "$networkresource" -a -z "$operationservice" ];then 
  37.     echo "we don't upgrade anything." 
  38.     exit 1 
  39. else 
  40.     echo "when you run this script,it will upgrade the project $networkresource and $operationservice " 
  41.     read -p "would you like do that?(yes/no)" yesno 
  42.     if [ ${yesno} != "yes" ];then 
  43.         echo "you stop the bash script,we don't upgrade the project." 
  44.         exit 1 
  45.     fi 
  46. fi 
  47.  
  48.  
  49. #kill tomcat pid 
  50. echo "kill the tomcat service instance,please hold on 5 seconds........." 
  51. ps aux | grep $instance | grep -v grep | awk '{print "kill ",$2|"bash"}' 
  52. running 
  53. ps aux | grep $instance | grep -v grep 
  54.  
  55.  
  56. #main work   
  57. #backup remove pack 
  58. echo "#main work"   
  59. echo "#backup remove pack" 
  60. if [ -n "$networkresource" ];then 
  61.     cp -R  ${network_dir} ${network_back}_$(date "+%Y%m%d_%H%M"
  62.     [ $? -ne 0 ] && exit 1 
  63.     echo "##cp#####################################################################" 
  64.     cd ${network_dir} 
  65.     pwd 
  66.     [ $? -ne 0 ] && exit 1 
  67.     echo "##cd#####################################################################" 
  68.     ls -l ${network_dir} | awk '$0~/^-/ || $0~/^d/{print "rm -rf ",$NF|"bash"}' 
  69.     [ $? -ne 0 ] && exit 1 
  70.     echo "##rm#####################################################################" 
  71.     mv  ${networkresource} ${network_dir} 
  72.     [ $? -ne 0 ] && exit 1 
  73.     echo "##mv#####################################################################" 
  74.     jar -xf ${network_dir}/networkresourcemanage.war  
  75.     [ $? -ne 0 ] && exit 1 
  76.     echo "##jar#####################################################################" 
  77. fi 
  78.  
  79.  
  80. if [ -n "$operationservice" ];then 
  81.     cp -R ${operate_dir} ${operate_back}_$(date "+%Y%m%d_%H%M"
  82.     [ $? -ne 0 ] && exit 1 
  83.     echo "##cp#####################################################################" 
  84.     cd ${operate_dir} 
  85.     pwd 
  86.     [ $? -ne 0 ] && exit 1 
  87.     echo "###cd####################################################################" 
  88.     ls -l ${operate_dir} | awk '$0~/^-/ || $0~/^d/{print "rm -rf",$NF|"bash"}' 
  89.     [ $? -ne 0 ] && exit 1 
  90.     echo "##rm#####################################################################" 
  91.     mv ${operationservice} ${operate_dir} 
  92.     [ $? -ne 0 ] && exit 1 
  93.     echo "##mv#####################################################################" 
  94.     jar -xf ${operate_dir}/operationservice.war  
  95.     [ $? -ne 0 ] && exit 1 
  96.     echo "##jar#####################################################################" 
  97. fi 
  98.  
  99. #cpp something. 
  100. OPERDATA='/opt/tomcat/apache-tomcat-6.0.33_iosm/bin/copy/op' 
  101. OPERCURRENT='/data/webapps/iosm_apps/operationservice_apps/current/WEB-INF/classes' 
  102. cp -f $OPERDATA/CasServerConfig.properties $OPERCURRENT/ 
  103. cp -f $OPERDATA/InterfaceURLConfig.properties $OPERCURRENT/ 
  104. cp -f $OPERDATA/system-datasource-config.xml $OPERCURRENT/datasource/ 
  105. cp -f $OPERDATA/net-system-datasource-config.xml $OPERCURRENT/datasource/ 
  106. cp -f $OPERDATA/datasource-appcontx.xml $OPERCURRENT/com/iscreate/conf/spring/ 
  107. cp -f $OPERDATA/login-ldap-appcontx.xml $OPERCURRENT/com/iscreate/conf/spring/ 
  108.  
  109. NETDATA='/opt/tomcat/apache-tomcat-6.0.33_iosm/bin/copy/net' 
  110. NETCURRENT='/data/webapps/iosm_apps/networkresourcemanage_apps/current/WEB-INF/classes' 
  111. cp -f $NETDATA/system-datasource-config.xml $NETCURRENT/datasource/ 
  112. cp -f $NETDATA/CasServerConfig.properties $NETCURRENT/ 
  113.  
  114.  
  115. #startup tomcat server 
  116. echo "#startup tomcat server" 
  117. echo ${tomcat_progrm}/bin/startup.sh 
  118. ${tomcat_progrm}/bin/startup.sh 
  119.  
  120. #view logs 
  121. echo "#view logs" 
  122. running 
  123. running 
  124. tail -f ${tomcat_progrm}/logs/catalina.out