一、脚本命令
#命令上传jar重启
#生效环境变量
source /etc/profile
#进入目录
targetDir=/root/yc-cloud/yc-bag-7003/test
bakDir=/root/yc-cloud/yc-bag-7003/test/bak
cd $targetDir
#定义变量
log=log.out
key=eureka-server
maxBakSize=3
oldJar=`ps -ef | grep $key| grep -v grep | awk '{print $12}'`
oldPid=`ps -ef | grep $key| grep -v grep | awk '{print $2}'`
#开始
echo "====deploy start===="
#移动备份旧包
targetSize=`ls -l |grep $key|wc -l`
#新增型上传备份,覆盖型上传无操作
if [ $targetSize -gt 1 ]
then
echo "移动备份旧包:$oldJar"
mv -f $oldJar $bakDir
#保持最大备份
cd $bakDir
currentBakSize=`ls -l |grep $key|wc -l`
while [ $currentBakSize -gt $maxBakSize ]
do
#删除最旧的包
delJar=`ls -tr|grep $key| grep -v grep | head -n 1`
rm -rf $delJar
echo "删除最旧的包:$delJar"
currentBakSize=`ls -l |grep $key|wc -l`
done
cd $targetDir
fi
#杀死旧进程
echo "杀死旧进程:$oldPid"
if [ -n "$oldPid" ]
then
kill -9 $oldPid
fi
#新包发布
currentJar=`ls -t|grep $key| grep -v grep | head -n 1`
echo "新包发布:$currentJar"
nohup java -jar -Xms256m -Xmx512m $currentJar> $log &
echo "====$currentJar deploy finished===="
#打印日志
echo "打印日志:$log"
tail -f $log
二、附加Alibaba Cloud Toolkit发布方式(其他工具类似)