背景:SpringBoot项目,打成jar包后,需要上传到linux服务器上进行应用发布,以前是手动输入命令做的处理,包括查进程杀进程,备份上一次发布的jar包文件,再去发布应用等操作,这个过程比较繁琐、容易出错,有时还会被打断。
故写了个sh脚本文件,实现一键快速发布应用和备份文件,在此记录一下,不喜勿喷
在应用发布目录下新建run.sh
source /etc/profile
echo "Restarting Application"
mjar=test-1.0.0.jar
mzip=test-1.0.0.zip
backup=/home/user/test/backup/
time=$(date "+%Y%m%d%H%M%S")
pid=`ps -ef | grep $mjar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo "closed process "$pid
fi
echo "move old file"
if [ -f "$mzip" ];then
mv $mjar $backup$mjar$time
unzip -q $mzip
sleep 3
echo "unzip over"
fi
echo "Ready for execution"
export BUILD_ID=dontKillMe
nohup java -Denv=prod -Dspring.profiles.active=prod -Dserver.port=8089 -jar $mjar &
sleep 3
echo "remove zip"
rm -rf $mzip
echo "Application has been started"