一、自动化部署git项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/bash # 清除项目进程和历史文件 pkill -f start.py sleep 1 cd /root/automation | rm -rf testProduce/ # 获取项目最新git代码(前提服务器配置好git账户) git clone git@dev. test .com:test_code /testProduce .git # 启动项目 cd testProduce/ nohup /usr/python/bin/python3 start.py & sleep 3 # 检查是否启动成功 pinfo=`pgrep -af start.py` if [ -n $pinfo ] then echo "Successfully!!!" else echo "Failed!!!" fi |
二、自动化更新git项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #!/bin/bash # 切换至项目路径 cd /root/automation # 检查项目是否有更新 gitinfo=`git pull` if [[ "${gitinfo}" == "Already up-to-date." ]] then echo "Already up-to-date." else # 重启项目 pkill -f start.py sleep 1 nohup /usr/python/bin/python3 start.py & sleep 3 # 检查是否启动成功 pinfo=`pgrep -af start.py` if [ -n $pinfo ] then echo "Successfully!!!" else echo "Failed!!!" fi |
三、自动化部署已有项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/bash # 设置源服务器信息 username= "root" password= "root" host= "10.22.33.44" dir = "/usr/local/app" # 备份当前项目(以备回滚) echo "Saving testProduce..." now=` date +%Y%m%d%H%M%S` cd $ dir | mkdir -p bak/$now tar -czvf testProduce. tar .gz testProduce/ testProduce-web/ mv testProduce. tar .gz bak/$now /testProduce . tar .gz # 拷贝项目更新包 echo "Copying testProduce..." /usr/bin/expect |
四、自动化回滚项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/bin/bash # 清除当前项目 echo "Clear..." rm -rf testProduce* | cd bak # 检查是否指定回滚版本(默认回滚上个版本,按日期排序,所以此路径不能有其他文件) if [ -z $1 ] then vs=` ls -l | sort -r | awk 'NR==2 {print $NF}' ` else vs=$1 fi # 回滚项目 echo "Reset>>> $vs" cd $vs | cp testProduce. tar .gz ../../ tar -zxvf testProduce. tar .gz | rm -f testProduce. tar .gz # 重启项目 echo "Restarting testProduce..." sh testProduce /restart .sh sleep 8 # 检查是否启动成功 pinfo=`pgrep -af testProduce.jar` if [ -n $pinfo ] then echo "Successfully!!!" else echo "Failed!!!" fi |
到此这篇关于Linux实现项目自动化部署的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持IT俱乐部。