当前位置:
首页 >
Linux之自动化部署
发布时间:2025/7/25
76
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Linux之自动化部署
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
No.1 自动化部署git项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/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 ] thenecho "Successfully!!!" elseecho "Failed!!!" fi
No.2 自动化更新git项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/bin/bash# 切换至项目路径 cd /root/automation# 检查项目是否有更新 gitinfo=`git pull` if [[ "${gitinfo}" == "Already up-to-date." ]] thenecho "Already up-to-date." else# 重启项目pkill -f start.pysleep 1nohup /usr/python/bin/python3 start.py &sleep 3# 检查是否启动成功pinfo=`pgrep -af start.py`if [ -n $pinfo ]thenecho "Successfully!!!"elseecho "Failed!!!"fi fi
No.3 自动化部署已有项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/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<<EOFset timeout 10spawn scp -r $username@$host:$dir/testProduce-web/ $direxpect "*password:"send "$password\r"expect eofspawn scp -r $username@$host:$dir/testProduce/lib $dir/testProduce/expect "*password:"send "$password\r"expect eofspawn scp $username@$host:$dir/testProduce/testProduce.jar $dir/testProduce/expect "*password:"send "$password\r"expect eof#interact EOF# 重启项目 echo "Restarting testProduce..." sh testProduce/restart.sh sleep 8# 检查是否启动成功 pinfo=`pgrep -af testProduce.jar` if [ -n $pinfo ] thenecho "Successfully!!!" elseecho "Failed!!!" fi:<<COMMENTBLOCKpkill -f testProduce.jar COMMENTBLOCK
No.4 自动化回滚项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/bin/bash# 清除当前项目 echo "Clear..." rm -rf testProduce* |cd bak# 检查是否指定回滚版本(默认回滚上个版本,按日期排序,所以此路径不能有其他文件) if [ -z $1 ] thenvs=`ls -l |sort -r |awk 'NR==2 {print $NF}'` elsevs=$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 ] thenecho "Successfully!!!" elseecho "Failed!!!" fi
———— 欢迎各路大神指点,转载请附上链接:https://www.cnblogs.com/leozhanggg/p/10917704.html
转载于:https://www.cnblogs.com/leozhanggg/p/10917704.html
总结
以上是生活随笔为你收集整理的Linux之自动化部署的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Android线程池封装库
- 下一篇: Linux常用命令——压缩与解压缩命令