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
随机推荐
- 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页
在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...
- CentOS6.8 安装node.js npm
环境:CentOS6.8_X64系统 一.到官方下载最新的编译好的安装文件,目前是6.9.4. $>cd /usr/local/src #定位到这个目录,下载的文件会在这个目录#使用wget下载 ...
- tomcat部署项目后,war包是否可刪?war包存在必要性!
在tomcat中webapps目錄上傳war包后, 对war解压时候. war不能在tomcat运行时删除,否则会删除自动解压的工程. 你可以停止tomcat后删除war. 当你重新部署的时候,如果 ...
- Java学习点滴——泛型
基于<Java编程思想>第四版 前言 虽然Java的泛型在语法上和C++相比是类似的,但在实现上两者是全然不同的. 语法 Java只需要一个<>就可定义泛型.在<> ...
- web.xml的<url-parttern>的匹配规则
<url-parttern>顾名思义是对url(统一资源定位符)的一种匹配,是对“http:........."地址的匹配,但是会减去应用上下文,就是你的web程序的名字,如果你 ...
- java的设计模式 - 静态工厂方法
静态工厂方法,也不知道为何叫这个名字.其实也就是一个静态函数,可以替代构造函数用.大名鼎鼎的 guava 就大量使用这种模式,这是非常有用的模式. 比如是 Integer i = Integer.va ...
- 微信小程序 picker 中range-key的坑
<picker class='fr' bindchange="onChangeBuild" range-key="{{'num'}}" value=&qu ...
- python网络爬虫-中国大学排名定向爬虫
爬虫定向爬取中国大学排名信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup import bs4 #从网络上获取大学 ...
- Github入门详情教程
前言 之前我写了一篇文章<一篇文章了解Github和Git教程>还延伸了几篇阅读,对大部分小白很有用,那么我继续普及下Github页面及其概念. 定义 GitHub 是一个网站,一个面向开 ...
- VSCode 下载Models 报错
VSCode调试部分代码时,报错,提示不能自动获取Models.报错信息如下. go: golang.org/x/crypto@v0.-80db560fac1f: unrecognized impor ...