Linux shell脚本初学体验成果

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011466469/article/details/82183803

背景:测试环境最小化,docker一键打包部署已不适用,需要在服务器git clone代码,mvn package打包;

把所有零散命令封装在shell脚本使用,通过参数传递,就不要一个一个名字输入来执行所有步骤(适合初学)

#!/bin/bash

#定义log输出路径

#logdir="/var/log/pack"

#logfile="$logdir/$makepath.log"

#修改为自己常用的打包路径

workspace="/data1/gitwar"

#git下载参数录入

read -p "请依次输入clone路径 git地址 git分支 war包名称 编译路径(git项目名称) 空格隔开:" workspace gitaddr branch appname makepath

#定义log输出路径

logdir="/var/log/pack"

logfile="$logdir/$makepath.log"

mkdir -p $workspace $logdir

cd $workspace

folder=`find . -name $makepath | head -1`

if [ -z $folder ]

then

echo -e "\n$makepath项目不存在 \n"

echo -e "开始git clone下载$makepath \n"

git clone -b $branch $gitaddr &>> $logfile

else

echo -e "\n删除已存在的$makepath项目 \n"

rm -rf $workspace/$makepath

echo -e "开始git clone下载$makepath \n"

git clone -b $branch $gitaddr &>> $logfile

fi

folder2=`find . -name $makepath |head -1`

if [ -z $folder2 ]

then

echo -e "$makepath git clone 失败!\n" && tail -50f $logfile

exit 0

else

echo -e "$makepath项目 git clone 成功!\n"

cd $workspace/$makepath/

echo -e "开始构建$appname包 \n"

starttime=`date +'%Y-%m-%d %H:%M:%S'`

/usr/local/maven/bin/mvn clean package -U -P product -Dmaven.test.skip=true &>> $logfile

endtime=`date +'%Y-%m-%d %H:%M:%S'`

start_seconds=$(date --date="$starttime" +%s);

end_seconds=$(date --date="$endtime" +%s);

echo -e "本次运行时间: "$((end_seconds-start_seconds))"s \n"

fi

war=`find $workspace -name $appname`

if [[ $war =~ $appname ]]

then

echo -e "war包构建成功! \n"

tail -n 16 $logfile

if [ $1 ]

then

echo -e "\n打包上预发布\n"

find $workspace/$makepath -name '*.war' -ok cp {} /data/deploy \;

exit 0

fi

else

echo -e "war包构建失败! \n" && tail -n 50 $logfile

exit 0

fi

示例:

[root@centos130 data]# package

请依次输入clone路径 git地址 git分支 war包路径 编译路径(git项目名称) 空格隔开:/data1/gitwar [email protected]:base-dev/account.git dev-delay2 account-service.war account

删除已存在的account项目文件夹

开始git clone下载account/account-service.war...

account git clone 成功!

开始构建account-service.war包

war包构建成功!

[root@centos130 data]#

猜你喜欢

转载自blog.csdn.net/u011466469/article/details/82183803
今日推荐