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
随机推荐
- .net core入门-发布及部署_异常(处理程序“aspNetCore”在其模块列表中有一个错误模块“AspNetCoreModuleV2")处理
备注:本人使用开发工具:VS2017,.NET Core 2.2,其中VS2017原本自带2.1,我单独从官网下载了2.2的程序集安装包,但是没有下配套的运行环境,运行项目时出了一个问题. 以下是我在 ...
- 学了两天 react,乱讲一下学习思路,顺便弄了一个脚手架
之前一直用 vue 做一些小项目,最近接触了一个项目是用 react 做前端,虽然本身是做后端开发的,但是前端还是要了解一点的. 现在的项目基本上都是前后端分离的,后端就先不提了.前端的框架也是层出不 ...
- org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component
原因:jdk1.8和你所用框架(spring+springMVC+mybatis)中spring框架的版本有问题, 解决方法:更换jdk1.7或者1.6
- 我的Spring Boot学习记录(一):自动配置的大致调用过程
1. 背景 Spring Boot通过包管理工具引入starter包就可以轻松使用,省去了配置的繁琐工作,这里简要的通过个人的理解说下Spring Boot启动过程中如何去自动加载配置. 本文中使用的 ...
- css3动画--位移加阴影
animation: name duration timing-function delay iteration-count direction; 值 描述 animation-name 规定需要绑定 ...
- 剑指前端(前端入门笔记系列)—— JS基本数据类型及其类型转换
基本数据类型 ECMAScript中有5中简单数据类型性(也称为基本数据类型):Undefined.Null.Boolean.Number和String,还有一种复杂数据类型——Object,Obje ...
- CSS3 弹性盒子
理解: CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式. 设置弹性盒子: 弹性盒子由弹性容器(Fl ...
- Windows下创建ArcGIS Server站点
原创文章,转载须标明出处自: https://www.cnblogs.com/gisspace/p/8126261.html ------------------------------------- ...
- nginx笔记----解决windows80端口被iis占用
打开注册表:regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP 数值数据修改成0或者其他 然后重启
- mssql server for docker on MacOs
1. install 1.下载镜像 docker pull microsoft/mssql-server-linux 使用该命令就可以把数据库的docker镜像下载下来. 2.创建并运行容器 dock ...