Linux之自动化部署
No.1 自动化部署git项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/bin/bash # 清除项目进程和历史文件
pkill -f start.py
sleep
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 # 检查是否启动成功
pinfo=`pgrep -af start.py`
if [ -n $pinfo ]
then
echo "Successfully!!!"
else
echo "Failed!!!"
fi
No.2 自动化更新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
nohup /usr/python/bin/python3 start.py &
sleep # 检查是否启动成功
pinfo=`pgrep -af start.py`
if [ -n $pinfo ]
then
echo "Successfully!!!"
else
echo "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<<EOF
set timeout
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 # 检查是否启动成功
pinfo=`pgrep -af testProduce.jar`
if [ -n $pinfo ]
then
echo "Successfully!!!"
else
echo "Failed!!!"
fi :<<COMMENTBLOCK
pkill -f testProduce.jar
COMMENTBLOCK
No.4 自动化回滚项目
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
#!/bin/bash # 清除当前项目
echo "Clear..."
rm -rf testProduce* |cd bak # 检查是否指定回滚版本(默认回滚上个版本,按日期排序,所以此路径不能有其他文件)
if [ -z $ ]
then
vs=`ls -l |sort -r |awk 'NR==2 {print $NF}'`
else
vs=$
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 # 检查是否启动成功
pinfo=`pgrep -af testProduce.jar`
if [ -n $pinfo ]
then
echo "Successfully!!!"
else
echo "Failed!!!"
fi
———— 欢迎各路大神指点,转载请附上链接:https://www.cnblogs.com/leozhanggg/p/10917704.html
Linux之自动化部署的更多相关文章
- 【Linux】自动化部署可信任登录
Linux信任登录,免密码登录的脚本: 需要安装expect,可以yum也可以编译安装,编译后注意脚本中的expect路径. rsa.exp #!/usr/bin/expect ########### ...
- Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)
1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 ...
- 从零实现Linux一键自动化部署.netCore+Vue+Nginx项目到Docker中
环境搭建 1.安装Linux,这里我用的阿里云服务器,CentOS7版本 2.进入Linux,安装Docker,执行以下命令 sudo yum update #更新一下yum包 sudo yum in ...
- LINUX系统自动化部署shell脚本
#!/bin/shsudo /etc/init.d/tomcatstopwaitsudo rm -rf /opt/tomcat7/work/*waitsudo rm -rf /opt/tomcat7/ ...
- Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux 自动化部署DNS服务器
Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加 ...
- Linux 自动化部署Rsyslog服务
Linux 自动化部署Rsyslog服务 源码如下: #/bin/bash #该脚本用于自动化部署Ryslog服务配置 #作者:雨中落叶 #博客:https://www.cnblogs.com/yuz ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
随机推荐
- 面试连环炮系列(二十):TCP的滑动窗口协议是什么
TCP的滑动窗口协议是什么 滑动窗口协议,用于网络数据传输时的流量控制,以避免拥塞的发生.该协议允许发送方在停止并等待确认前发送多个数据分组.由于发送方不必每发一个分组就停下来等待确认,因此该协议可以 ...
- 一步一步解决centos6.5配置无线网卡的问题
1.配置本地yum源 [local] name=local baseurl=file:///mnt/cdrom enable=1 gpgcheck=0 2.安装libnl rpm -ivh /mnt/ ...
- Android 布局阴影实现
最近项目要求,ui有很多有关于阴影的设计要求,网上找了些实现方式,但都不是很理想.现在闲下来了,就寻思着自己写个阴影布局耍耍,以备后用.先说道说道我找到的几种阴影实现方式: 系统阴影 Andorid ...
- nfs 所有的版本的 RFC 整理; nfs 所有版本对比;
下面是针对 nfs 所有的版本,我们可以通过不同的RFC 进行详细看其RFC的细节来进行对比: 下面是备忘一些NFS RFC 的链接: https://datatracker.ietf.org/doc ...
- Appium(七):Appium API(一) 应用操作
1. 应用操作 本章所罗列的方法主要针对应用的操作,如应用的安装.卸载.关闭.启动等. 把前面的启动代码放在这里,后面只展示不同的部分. # coding:utf-8 from appium impo ...
- Linux 终端(TTY)
TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代.不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TT ...
- java之生产者和消费者问题
package testThread; public class Test3 { public static void main(String[] args) { Clerk c = new Cler ...
- Windows Redis 安装(带视频)
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...
- MySQL主从复制配置(Docker容器内配置)
主从工作原理: 配置介绍: MASTER:172.17.0.2 SLAVE:172.17.0.3 MASTER内数据库: 仅仅同步以上两个库(在configerdata库中创建了wu2表) SLAVE ...
- Password Management:Password in Configuration File 密码管理:配置文件中的密码