首页 > 系统相关 >Linux如何实现项目自动化部署

Linux如何实现项目自动化部署

时间:2022-11-07 10:10:05浏览次数:47  
标签:testProduce 项目 部署 Linux echo pinfo git 自动化 dir

Linux系统是目前大多数企业都会使用的一种操作系统,Linux下可开发的项目 JavaEE、大数据、Python、PHP、C/C++使用各种语言能够方便快捷的获取企业行业信息,通俗点讲,就是利用爬虫机器实现目标。

Linux实现项目自动化部署的方法,本文通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。

一、自动化部署git项目

#!/bin/bash

# 清除项目进程和历史文件
pkill -f start.py
sleep 1
cd /root/automation |rm -rf testProduce/

# 获取项目最新git代码(前提服务器配置好git账户)
git clone [email protected]: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/$now
tar -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
#interact
EOF

# 重启项目
echo "Restarting testProduce..."
sh testProduce/restart.sh
sleep 8

# 检查是否启动成功
pinfo=`pgrep -af testProduce.jar`
if [ -n $pinfo ]
then
echo "Successfully!!!"
else
echo "Failed!!!"
fi

:<<COMMENTBLOCK
pkill -f testProduce.jar
COMMENTBLOCK

四、自动化回滚项目

#!/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

标签:testProduce,项目,部署,Linux,echo,pinfo,git,自动化,dir
From: https://blog.51cto.com/u_13488918/5827817

相关文章

  • 《上海悠悠接口自动化平台》-4.注册用例集实战演示
    前言以注册接口为例,在平台上演示如何维护接口自动化用例访问地址http://47.108.155.10/login.html用户名:demo,密码:demo123有兴趣的可以自己去查看用例规范和运......
  • 接口自动化
    接口自动化本质:通过requests和Excel(数据库)对用例进行批量的自动化回归测试。关于Excel操作Excel:https://www.cnblogs.com/Neeo/articles/11650149.htmlimportxlrdf......
  • 自动化框架——pytest
     pytest的用处和学习目的:简单灵活,容易上手支持参数化能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+request......
  • 接口自动化测试用例如何设计
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/bc90038a.html你好,我是测试蔡坨坨。说到自动化测试,或者说接口自动化测试,多数人的第一反应是该用什么工具,比如:P......
  • 尚硅谷Linux学习笔记
    尚硅谷Linux学习笔记入门:Linux的诞生:Linux与Unix:GNU/Linux:linux发行版:LinuxvsWindows:基础篇:Linux文件系统:Linux系统中一切皆文件。切换到根目录:cd/各......
  • OpenEuler2203 基于容器和本地文件部署Redis Cluster的过程以及简单性能测试
    背景其实文件搭建和集群搭建没有任何区别这次用先用容器搭建出来,然后测试一下性能想着再使用本地部署的方式搭建一下.两项验证容器和基于文件的搭建的性能差异部分资......
  • how to extract jar file in linux
    mikeli@dell-pc:~/code/algo_java/algs4_source_code$jarxfalgs4.jar  Usage:jar{ctxui}[vfmn0PMe][jar-file][manifest-file][entry-point][-Cdir]files......
  • PyCharm在Linux安装出现报错-Java Runtime (class file version 55.0)
        在Linux桌面下安装PyCharm的时候出现如下报错root@ubuntu:~#cdpycharm-community-2021.1.1root@ubuntu:~/pycharm-community-2021.1.1#lsbinclas......
  • DNS服务器部署-bind
    @目录简单安装部署(ubuntu)centos客户端进行测试自定义域名配置配置正向解析配置反向解析centos客户端测试安装部署(centos)自定义域名配置ubuntu客户端测试配置域名解析多个地......
  • Linux 关闭系统时间同步-timedatectl的使用
     源于一次项目需要修改系统时间,但是每次修改后又被同步回网络时间,找了好久发现是这个原因:NTP即NetworkTimeProtocol(网络时间协议),是一个互联网协议,用于同步计算机之间......