pjb fabu
#!/bin/bash PyPath=/opt/shell/mysql LocaName=`pwd`
bagname=`basename $LocaName` sleep 1s
ConfList=`python /opt/shell/mysql/select.py $bagname` #远程同步ip组
IpList=`echo $ConfList|awk -F ',' '{print $5}'`
echo "远程ip:$IpList" #本地包路径
BasePath=`echo $ConfList|awk -F ',' '{print $1}'` echo "本地包路径:$BasePath"
DirName=$BasePath/bak/`date +%Y%m%d`
PagTime=`date +%Y%m%d%H%M` #本地包名称
fbagname=`ls $BasePath/package`
fpath=$BasePath/package/$fbagname echo $fbagname #本地配置文件路径
ConfName=`ls $BasePath/conf`
CBasePath=$BasePath/conf/$ConfName #远程执行脚本路径 ShPath=`echo $ConfList|awk -F ',' '{print $4}'`
ShName=`basename $ShPath`
ShWath=`dirname $ShPath` #远程包路径
ForPath=`echo $ConfList|awk -F ',' '{print $2}'`
ConfForPath=$ForPath/conf #微信通知:
function f_weixin()
{
Tstatus=$2 #0为开始发布,1为完成发布
Ttempip=$1 BakName=$DirName/"$bagname"_$PagTime.tar.gz if [ $Tstatus -eq 0 ] ; then msg="服务器$Ttempip:$bagname服务开始发布.."
/usr/bin/curl http://172.16.3.50/zabbix_web/weixin/weixin.php?msg="$msg"
sleep 1s #发布开始状态写入数据库
python $PyPath/insert.py $bagname $Ttempip $BakName else
msg="服务器$Ttempip:$bagname服务完成发布.."
/usr/bin/curl http://172.16.3.50/zabbix_web/weixin/weixin.php?msg="$msg"
sleep 1
#发布完成写入数据库
python $PyPath/update.py $bagname
sleep 1s
Date2=`date "+%Y-%m-%d %H:%M:%S"`
echo "$Date2 $Ttempip static重启更新版本完成" |tee $LogFile
echo "==============================================================" |tee $LogFile
fi } #备份前一个版本 function f_bakstatic()
{ if [ ! -d "$DirName" ]; then mkdir $DirName fi cd /data/online/static
echo "开始备份程序包.."
sleep 2s
tar -C $BasePath -zcvf $DirName/$bagname_$PagTime.tar.gz package echo "备份已经完成,备份包:$DirName/$bagname_$PagTime.tar.gz.."
echo "......................................................."
echo "......................................................."
echo "......................................................."
sleep 1s } #同步文件到远程服务器
function static_rs()
{
echo "开始更新程序包到同步目录$BasePath/package.."
sleep 1s rsync -avz -L --progress --delete --port=3878 $BasePath/temp/ $BasePath/package/
echo "更新程序包完成.."
echo "......................................................."
echo "......................................................."
echo "......................................................."
sleep 1s OnlineIp=$1 echo "开始同步脚本到远程服务器执行" ansible $OnlineIp -m copy -a "src=$ShPath dest=$ShWath owner=www group=www mode=0755" sleep 3s
echo "开始同步新包到远程服务器"
ansible $OnlineIp -m copy -a "src=$fpath dest=$ForPath owner=www group=www mode=0755" echo "开始执行远程生产服务器:$OnlineIp" 重启服务脚本 ansible $OnlineIp -m shell -a $ShPath sleep 2s echo "同步脚本到生产环境服务器:$OnlineIp完成.."
echo "......................................................."
echo "......................................................."
echo "......................................................."
sleep 1s } function f_fabu()
{ read -p "请选择是否需要替换配置文件, 1为替换;2为不替换:" ti #备份程序 f_bakstatic; #微信提示 for OnIp in $IpList do #是否更新配置文件
if [ "$ti" == 1 ]; then
echo " 开始同步配置文件到远程服务器"
echo $CBasePath
echo $ForPath ansible $OnIp -m copy -a "src=$CBasePath dest=$ConfForPath owner=www group=www mode=0755" fi f_weixin $OnIp 0
sleep 2s static_rs $OnIp sleep 2s f_weixin $OnIp 1
done } f_fabu;
pjb fabu的更多相关文章
- fabu dao fenleizhong
IsAggregated IsAggregatedIsAggregated IsAggregatedIsAggregated IsAggregatedIsAggregated IsAggregated ...
- airflow 部署
环境 : ubuntu 14.04 LTS python 2.7 script: 设置环境变量: export AIRFLOW_HOME=~/airflow 安装相关依赖包: sudo apt-get ...
- 纯CSS照片墙
css中transform参考CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate 效果图:
- 会务准备期间材料准备工作具体实施总结 ----(vim技巧应用, python信息提取与整合, microsoft word格式调整批量化)
会务准备期间材料准备工作具体实施总结(vim, python, microsoft word) span.kw { color: #007020; font-weight: bold; } code ...
- 15、ASP.NET MVC入门到精通——MVC-路由
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Routing(路由) – URL url 作为广泛使用的Web用户接口,需要被重视 好的Url应该满足如下条件: URL应为获取某种资源提 ...
- 魔改——MFC SDI 支持 内嵌 EXCEL OLE
==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...
- windows下的NodeJS安装
1.登录官网 http://nodejs.org ,install 下载安装包.. 2.安装过程基本直接“NEXT”就可以了. 3.安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安 ...
- Servlet高级
1. 获取初始化参数 在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数. index.jsp < ...
- OAF_开发系列26_实现OAF中Java类型并发程式开发oracle.apps.fnd.cp.request(案例)
20150730 Created By BaoXinjian
随机推荐
- [Vue] vue中setInterval的问题
vue中使用setInterval this.chatTimer = setInterval(() => { console.log(this.chatTimer); this.chatMsg( ...
- JMeter主要组件介绍
JMeter主要组件介绍 转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...
- C# 反射 判断类的延伸类型
判断类型是否被继承.实现 1.判断是否实现了指定接口 添加测试类: public class TestClass2 : TestClass1 { } public class TestClass1 : ...
- ajax的嵌套需要注意的问题
当我们要嵌套ajax的时候,需要注意 异步/同步 的处理,一般是要设置成同步,如果是异步,那么被嵌套的ajax的操作很可能获取不到想要的值,因为他可能比嵌套他的ajax跑的更早 在ajax中有一个as ...
- 鼠标事件以及clientX、offsetX、screenX、pageX、x的区别
鼠标事件 鼠标事件有下面这几种: 1. onclick 鼠标点击事件 box.onclick = function(e){ console.log(e) } 2. onmousedown 鼠标按下事件 ...
- div在另一个div居中对齐
position:fixed; top:0; right:0; left:0; bottom:0; margin:auto;
- 微信web页面返回刷新
问题:在微信web页面开发的过程中,会遇到返回上一个页面数据没有刷新的情况. 解决方案:在该页面监控用户的浏览,每次加载都刷新页面. window.onpageshow = function(even ...
- Android-蓝牙的网络共享与连接分析
一.概述 本次分析是基于android7.0的源码,主要是介绍如何通过反射来打开蓝牙的网络共享以及互联网的连接. 二.蓝牙的网络共享 1. 网络共享部分源码分析 关于packages/apps/Set ...
- Spinner之下拉多选,监听ID后显示不同Frgment页面
本人安卓小白,公司最近项目需要用到不同的类型的用户注册,周末下午写完记录一下. 网上找了一堆没有适合自己的(或者说我没找到),写的比较基础,欢迎大家多多指导. 老规矩,先上效果图 网上在线合成的GIF ...
- Ionic3关闭弹出页面,跳转到列表后刷新父页面
记得上次写过一篇如何弹出页面的文章,好像是2月28号ionic3 Modal组件那一篇,这篇也算那一篇的续集吧!这篇是弹出的页面关闭后刷新父页面的干活!上代码! 弹出页面:(关闭的时候可以传入值,再父 ...