首页 / LINUX / Linux之自动化部署
Linux之自动化部署
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux之自动化部署,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2534字,纯文字阅读大概需要4分钟。
内容图文
![Linux之自动化部署](/upload/InfoBanner/zyjiaocheng/970/a570ea8b6fbb4e229b2f63dc51911b45.jpg)
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 ]
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 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
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 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
No.4 自动化回滚项目
#!/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
———— 欢迎各路大神指点,转载请附上链接:https://www.cnblogs.com/leozhanggg/p/10917704.html
内容总结
以上是互联网集市为您收集整理的Linux之自动化部署全部内容,希望文章能够帮你解决Linux之自动化部署所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。