Jenkins shell执行命令脚本编写

直接入正题:

#!/bin/bash

#避免Jenkins在构建完成后使用processTreeKiller杀掉了所有子进程。而且这是Jenkins的默认行为
BUILD_ID=dontkillme

#tomcat 控制中心路径
tomcat_path=/opt/apache-tomcat-8.5.35/webapps

#重启tomcat 的shell脚本
restart_tomcat_sh_path=/opt/apache-tomcat-8.5.35/webapps
restart_tomcat_sh_name=restart-all.sh

#从git中下载的源码路径
# $JENKINS_HOME 为全局变量 请事先查看 有没有声明没有在 在/etc/profile中声明
# export JENKINS_HOME=/home/jenkins
source_path=/home/jenkins/workspace/sports

project=sports
# war包路径 及 名称
war_path=/home/jenkins/workspace/sports/target/
war_name=sports.war
war_file=$war_path$war_name

# file_path=/home/jenkins/remoting/logs
# 日志所在路径
log_file=/home/jenkins/logs/sports.log

cd /home/jenkins
#创建备份目录
if [ ! -d logs ];then
	mkdir logs
fi

#定义一个函数 用来写入log文件
writeLogFun(){
        if [ ! -e $log_file ]
        then
                touch $log_file
        fi
        nowtime=`date +%Y%m%d%H%M%S`
        echo $nowtime$1 >> $log_file
}

#writeLogFun '开始执行 mvn install命令当前路径'$(pwd)
# mvn install
mvn -f $source_path/pom.xml install


writeLogFun '创建备份目录,当前路径'$(pwd)
cd /opt/apache-tomcat-8.5.35/webapps

#创建备份目录
if [ ! -d back ]
then
	mkdir back
fi

#对war包备份

if [ -e $war_name ]
		writeLogFun '对war包备份,当前路径'$(pwd)
		
        then
                cp sports.war back/sports.war`date +%Y%m%d%H%M%S`
        fi

#重启服务

cd /opt/apache-tomcat-8.5.35/bin

writeLogFun '杀掉Tomcat线程,当前路径'$(pwd)
ps -ef | grep tomcat | grep -v grep | awk '{print $2}' |xargs kill -9

rm -rf sports*
mv $war_file $tomcat_path

/opt/apache-tomcat-8.5.35/bin/startup.sh
writeLogFun '启动tomcat服务,当前路径'$(pwd)
echo '启动项目'

你可能感兴趣的:(jenkins集成Git,jenkins,linux)