• jenkins发版svn


    1、在mac上直接安装Jenkins,下载地址 :

    2、安装插件:系统管理--》插件管理

    publish over ssh

    Exec command:

    cd /usr/local/apache-tomcat-7.0.81/bin/
    sh jenkins.sh 8080 hc-adapter /usr/local/jdk1.7

    这里与服务器上tomcat中的脚步发生互动了。

     jenkins.sh 负责服务器上tomcat的关闭和启动;

    具体代码:

    #!/bin/bash
    #Time
    log_time=`date +[%Y-%m-%d]%H:%M:%S`
    
    ###manual_properties###
    tomcat_port=$1
    war_Dir=/opt/jenkins
    war_Name=$2
    debug_port=$3
    ###manual_properties###
    
    echo "**********************************  ${log_time} *************************************"
    echo "updating server  environment start"
    export JAVA_HOME=$3
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$JAVA_HOME/bin:$PATH 
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar/
    sleep 3
    echo "updating server  environment  end"
    #build check funcation
    echo "check tomcat status..."
    check_tomcat_status(){
          netstat -ant|grep ${tomcat_port} > /dev/null 
          t=$?
           if [ $t -eq 0 ]; then
               echo "tomcat is running....port is ${tomcat_port}"
               echo "shutdown tomcat....."
               echo ">>>>>>>shutdown tomcat begin<<<<<<<<"
               sh shutdown.sh
               echo ">>>>>>>shutdown tomcat end <<<<<<<<"
               sleep 15
           elif [ $t -ne 0 ];then 
                 echo "tomcat is poweroff"
           fi
    } 
    
    #check tomcat status invoke function
    check_tomcat_status
    
    export TOMCAT_HOME=/usr/local/tomcat8
    #echo "-------Input process name first"
    ## 从控制台读取要杀的进程名(read the value from the console)
    #read input1
    ## 获取pid (get the pid)
    #PID=$(ps x|grep $input1|grep -v grep|awk '{printf $1}')
    PID=$(ps x|grep $TOMCAT_HOME|grep -v grep|awk '{printf $1}')
      if [ $? -eq 0 ]; then
        echo "---------process id(进程id):$PID"
        echo "-------begin to kill the pid(开始杀进程)"
        kill -9 $PID
          if [ $? -eq 0 ];then
    #        echo "----------kill $input1 success(成功杀死进程)"
      echo "----------kill $TOMCAT_HOME success(成功杀死进程)"
         else
           echo "----------kill $input1 fail(杀死进程失败,可能该进程不存在)"
        fi
      else
    ## 实际测试:进程不存在时不会走这个else(in fact,this situation will not happen)
        echo "---------process $input1 not exit(该进程不存在)"
        exit
      fi
    ## 睡眠3秒,确保进程已停止(sleep 3s make sure the process has killed)
    echo "-------wait for closing the tomcat(等待tomcat被关闭)"
    sleep 3s
    
    echo "-------begain to start the tomcat service (开始启动tomcat服务)"
    $TOMCAT_HOME/bin/startup.sh && tail -f $TOMCAT_HOME/logs/catalina.out
    
    
    #transfer  application package
    echo "--------------  begin  transfer  war package to tomcat webapps -------------------"
    
    if [ -z $war_Dir ];then
         echo "Folder ${war_Dir} is empty.please check war package in this folder!"
         exit 1 
    else
         echo "Find ${war_Dir} exist war package ${war_Name}"
         echo "deleteing old  package ${war_Name} in tomcat" 
         rm -rf ../webapps/${war_Name}*
         rm -rf ../work/
         echo "start  transfer ${war_Name} to tomcat"
         mv ${war_Dir}/${war_Name}.war  ../webapps/
         sleep 10 
    fi
    echo "--------------  transfer  war package to tomcat webapps  end -------------------"
    echo " >>>>>>>  rebooting  tomcat begin <<<<<<<<"
    sh startup.sh
    echo " >>>>>>>  rebooting  tomcat end <<<<<<<<"
    echo "the log you can read in canalina.out"
    echo "************************ deploy war package into container Successlly  **********************************"
    

      

    www.beicaiduo.com
  • 相关阅读:
    浮动与浮动的清除
    【最全】经典排序算法(C语言)
    Python类中的self到底是干啥的
    浅析Python3中的bytes和str类型
    Shell十三问[转]
    VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容
    C语言运算符优先级
    mysql主要性能监控指标
    sql 优化
    npm install安装时忘记--save解决方法
  • 原文地址:https://www.cnblogs.com/hoge66/p/10059086.html
Copyright © 2020-2023  润新知