Linux实现项目的自动化部署

2022-11-28 0 625

一、自动化部署git项目#!/bin/bash # 清除项目进程和历史文件pkill -f start.pysleep 1cd /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项目#!/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三、自动化部署已有项目#!/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/$nowtar -czvf testProduce.tar.gz testProduce/ testProduce-web/mv testProduce.tar.gz bak/$now/testProduce.tar.gz # 拷贝项目更新包echo \”Copying testProduce…\”/usr/bin/expect<<EOF set timeout 10 spawn scp -r $username@$host:$dir/testProduce-web/ $dir expect \”*password:\” send \”$password\\r\” expect eof spawn scp -r $username@$host:$dir/testProduce/lib $dir/testProduce/ expect \”*password:\” send \”$password\\r\” expect eof spawn scp $username@$host:$dir/testProduce/testProduce.jar $dir/testProduce/ expect \”*password:\” send \”$password\\r\” expect eof #interactEOF # 重启项目echo \”Restarting testProduce…\”sh testProduce/restart.shsleep 8 # 检查是否启动成功pinfo=`pgrep -af testProduce.jar`if [ -n $pinfo ]then echo \”Successfully!!!\”else echo \”Failed!!!\”fi :<<COMMENTBLOCK pkill -f testProduce.jarCOMMENTBLOCK四、自动化回滚项目#!/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=$1fi # 回滚项目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.shsleep 8 # 检查是否启动成功pinfo=`pgrep -af testProduce.jar`if [ -n $pinfo ]then echo \”Successfully!!!\”else echo \”Failed!!!\”fi

到此这篇关于Linux实现项目自动化部署的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持悠久资源网。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Linux服务器 Linux实现项目的自动化部署 https://www.u-9.cn/jiaocheng/linux/690.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

注册会员,众多资源免费下载