Linux之自动化部署
生活随笔
收集整理的這篇文章主要介紹了
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线程池封装库
- 下一篇: 使用qwt作曲线图——有网格线背景的画法