tomcat快速更新脚本

#!/bin/bash
# operating environment :CentOS release 6.8
# chkconfig: 2345 80 50
# Auther:wangjiana

#tomcat存放地址
url=/dzzb/usr/local/
#代码拉取地址
urlsvn=/data/svnupload/
#更新日志
Update_log="/dzzb/usr/local/Update_log.log"
time=`date "+%Y-%m-%d %H:%M:%S"`
Date=`date +%Y%m%d%H%M%S`
#tomcat的pid
pid=$(ps -ef | grep tomcat-$proflie | grep -v grep | awk '{print $2}')
#yum install -y svn wget vim unzip 

#test函数测试tomcat的是否启动
function test(){
	if [ "$pid" != "" ];then
			echo "tomcat-$proflie is running!"
	else 
			echo "tomcat-$proflie may not be running!"
	fi 
}

#清除缓存
function cache(){
	sync
	echo 3 > /proc/sys/vm/drop_caches
}

#tomcat重启函数
function code_update(){
	if [ "$pid" != "" ];then
		kill -9 $pid
	fi
	sleep 10

	rm -rf $url/tomcat-$proflie/work/Catalina/*
	rm -rf $url/tomcat-$proflie/temp/*
	rm -rf $url/tomcat-$proflie/logs/*
	cache
	$url/tomcat-$proflie/bin/startup.sh
	sleep 10
	screen tail -f /dzzb/usr/local/tomcat-$proflie/logs/catalina.out
	clear
	test
}

#将拉取得代码进行覆盖
function project_change(){
cat<<EOF
测试站     test         
EOF
read -p "Input update items: " proflie
	cd $url/tomcat-$proflie/webapps/
        #判断webapps文件下的项目文件
	for i in $(ls); do
		#statements
		if [ -d $i ]; then
			#statements
			tar cvf $Date$i.tar.gz $i
			yes|cp -ir /data/svnupload/* $url/tomcat-$proflie/webapps/$i/
			#判断拉取得代码中是否含有一下文件,有则调用函数code_update
                        bb=$(find /data/svnupload/  \( -name "*.class" -o -name "*.xml" -o -name "*.jar" -o -name "*.properties" \))
			if [ ! -n "$bb" ];then
				echo "tomcat is not update"
				echo "$time  tomcat_project_name :$profile      version_number:$version_number  " >> /dzzb/usr/local/Update_log.log
			else
				code_update
				echo "$time  tomcat_project_name :$profile      version_number:$version_number  " >> /dzzb/usr/local/Update_log.log
			fi
        fi
    done
}

#拉取代码
function svn_code(){
	cd $urlsvn
	/usr/bin/svn checkout $1
	version_number=`echo $1 | awk -F / '{ print $8 }'`
	unzip $version_number/*.zip&&aa=$(echo $?)
	if [ "$aa" = "0" ]; then
		#statements
		rm -rf $urlsvn$version_number
		project_change
		else
		echo "reload svn checkout code"
	fi
}
svn_code $1
rm -rf /data/svnupload/*

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值