一套开发阶段简单的cloud项目部署脚本
偷懒之作,在开发阶段比较简单且灵活,以后jenkins什么的可以直接用
先本地构建并集中jar包
mvn-install.bat
@echo mvn start d: cd D:\work\IdeaProjects\pig\ //项目目录 mvn clean install -Dmaven.test.skip=true @echo mvn over
move-jar.bat
@echo move start call mvn-install.bat echo. echo. d: set newDir=D:\work\jar\up-jar cd D:\work\IdeaProjects\pig\pig-gateway\target copy /y *.jar %NewDir%\ cd D:\work\IdeaProjects\pig\pig-service-auth\target copy /y *.jar %NewDir%\ cd D:\work\IdeaProjects\pig\pig-service-admin\target copy /y *.jar %NewDir%\ cd D:\work\IdeaProjects\pig\pig-service-sys\target copy /y *.jar %NewDir%\ @echo move over pause
再用scp命令上传服务器,这步也可以放在上面的命令里
@echo upload start set newDir=D:\work\jar\up-jar scp %newDir%\*.jar root@192.168.7.193:/opt/java/jar/ @echo upload over
服务器上部署脚本
all-deployment.sh
#!/bin/bash PROJECT_NAME=(pig-service-sys pig-service-admin pig-service-auth pig-gateway) PROJECT_PID=""
IGNORE_SERVICE="grep\|doc" re_start(){ stop sleep 5 for i in ${PROJECT_NAME[@]}; do echo $i "start begin" nohup java -jar -Xmx256M -Xms125M -Dfile.encoding=utf-8 -Duser.timezone=UTC $i.jar & PROJECT_PID=`ps -ef|grep $i |grep -v grep | awk '{print $2}'` until [ -n "$PROJECT_PID" ] do PROJECT_PID=`ps -ef|grep $i |grep -v grep | awk '{print $2}'` echo waing sleep 1 done echo "start end" sleep 15; echo "start next" done echo "start over" } stop(){ VAL_ONE=`ps -ef|grep pig- |grep -v $IGNORE_SERVICE| awk '{print $2}'` for i in $VAL_ONE;do kill -9 $i;done sleep 3 echo kill all } start(){ stop echo move..... mv /opt/java/jar/pig-*.jar /opt/java/ echo start re_start } read -p "请选择操作: 1-重部署,2-重启,3-停止:" key case $key in 1) start;; 2) re_start;; 3) stop;; *) esac echo 'shell over...'
上传那步因为每次scp传文件会要输密码,弄个ssh公钥放到服务器上信任,简单记一下
本地生成密钥跟公钥,输入名后一直回车,不设密码了
ssh-keygen -t ed33333 -C "your_email@example.com"
#查看公钥内容
cat ~/.ssh/id_ed33333.pub
复制到服务器上的
~/.ssh/authorized_keys
文件里,多个换行就行了
记得给好权限,重新执行上传命令yes之后每次就不用输密码了