互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~

1.在/home/weihu/deploy/ 目录下建下publish 、publish下建下bak、bin、cfg、rel文件夹(其中bak为备份、bin为自己写的脚本语言目录、cfg为生产环境的配置文件、rel每次版本发布)

2.安装expect脚本 查看是否已经安装 whereis expect

3.工程版本中,生产配置文件往往是很少变的,但是自己打的版本可能是在开发环境可能和生产环境配置不同。这样你整理下生产环境中不能改变的配置文件放在配置文件中

具体的脚本代码

start_all_XX_service.sh

#!/bin/bash
/home/weihu/bin/startWeblogic_9011.sh &&
/home/weihu/bin/startWeblogic_9012.sh &&
/home/weihu/bin/startWeblogic_9013.sh &&
/home/weihu/bin/startWeblogic_9014.sh && 
/home/weihu/bin/startWeblogic_9015.sh

stop_all_XX_service.sh

#!/bin/bash

/home/weihu/bin/stopWeblogic_9011.sh &&
/home/weihu/bin/stopWeblogic_9012.sh &&
/home/weihu/bin/stopWeblogic_9013.sh &&
/home/weihu/bin/stopWeblogic_9014.sh &&
/home/weihu/bin/stopWeblogic_9015.sh

一键发布脚本

rdr.sh

#!/bin/bash
/home/weihu/bin/startWeblogic_9011.sh &&
/home/weihu/bin/startWeblogic_9012.sh &&
/home/weihu/bin/startWeblogic_9013.sh &&
/home/weihu/bin/startWeblogic_9014.sh && 
/home/weihu/bin/startWeblogic_9015.sh
[jizhiping@ececp6 bin]$ more stop_all_openapi_service.sh
#!/bin/bash
/home/weihu/bin/stopWeblogic_9011.sh &&
/home/weihu/bin/stopWeblogic_9012.sh &&
/home/weihu/bin/stopWeblogic_9013.sh &&
/home/weihu/bin/stopWeblogic_9014.sh &&
/home/weihu/bin/stopWeblogic_9015.sh
[jizhiping@ececp6 bin]$ more rdr.sh
#!/bin/sh
echo "--------------------begin delete the version and  unzip the basic of openapi.zip --------------------"
mv /home/weihu/deploy/publish/rel/openapi  /home/weihu/deploy/publish/bak/openapi_`date +%Y%m%d%H%M%S`
unzip /home/weihu/deploy/publish/rel/openapi.zip -d /home/weihu/deploy/publish/rel/
echo "--------------------end delete the version and unzip the basic of openapi.zip --------------------"
sleep 1

for i in $(seq 5); do
let port=9010+$i
echo ""
echo "--------------------start deploy openapi to 10.173.23.54:$port--------------------"
expect <<!
spawn ssh -l jizhiping 10.173.23.54 "rm -rf /home/weihu/deploy/deploy$port/openapi"
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/rel/openapi jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/config.properties jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/datasource.properties jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/jtcfg.properties jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/syscfg.properties jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/applicationContext-dubbo.xml jizhiping@10.173.23.54:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/app
lication/base/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

!
done;

sleep 3

echo ""
echo "--------------------start unzip the basic of openapi.zip to 55--------------------"

for i in $(seq 5); do
let port=9010+$i
echo ""
echo "--------------------start deploy openapi to 10.173.23.55:$port--------------------"
expect <<!
spawn ssh -l jizhiping 10.173.23.55 "rm -rf /home/weihu/deploy/deploy$port/openapi"
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/rel/openapi jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/config.properties jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/datasource.properties jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/jtcfg.properties jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/syscfg.properties jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

spawn scp -rpq /home/weihu/deploy/publish/cfg/applicationContext-dubbo.xml jizhiping@10.173.23.55:/home/weihu/deploy/deploy$port/openapi/WEB-INF/classes/app
lication/base/
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof

!
done;

sleep 3

echo ""
echo "--------------------begin restart openapi server from 10.173.23.54--------------------"
expect <<!
spawn ssh -l jizhiping 10.173.23.54 "/home/weihu/deploy/publish/bin/restart_all_openapi_service.sh"
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof
!

sleep 3

echo ""
echo "--------------------begin restart openapi server from 10.173.23.55--------------------"
expect <<!
spawn ssh -l jizhiping 10.173.23.55 "/home/weihu/deploy/publish/bin/restart_all_openapi_service.sh"
set timeout 300
expect "*password:"
send "jizhiping_2015\r"
expect eof
!

echo "--------------------deploy and restart for 54 and 55 is successful--------------------"

使用expect脚本语言写一键发布服务(代码发布、所有服务重启)的更多相关文章

  1. Linux 下 expect 脚本语言中交互处理常用命令

    Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...

  2. expect脚本语言用法示例

    #!/usr/bin/expect set hostname [lindex $argv 0] set username [lindex $argv 1] set passwd [lindex $ar ...

  3. 用matlab脚本语言写M文件函数时用三种方法简单实现实现DFT(离散傅里叶变换)

    %用二重循环实现DFT: function xk=dt_0(xn); %define a function N=length(xn); %caculate the length of the vari ...

  4. (五)Lua脚本语言入门

    ---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...

  5. Unity3d中如何混用三种脚本语言?

    首先要明白,这三种说的混用是指文件级别的混用,就是说一个文件是由一种语言写的.而不是说你这一个文件可以混用这三种语言,注意这是不允许的. 第二要明白,在unity3d中为什么可以使用三种语言混合开发? ...

  6. jenkins配置记录(2)--代码发布流程

    在我们的日常运维工作中,使用jenkins来完成业务代码发版上线是至关重要的一环.前面已经提到在jenkins上添加用户权限的操作,今天重点说下如何在jenkins下构建项目工程进行代码发布? 在此简 ...

  7. jenkins自动发布java代码

    注:本文来源于<KaliArch> jenkins笔记 一.相关概念 1.1 Jenkins概念: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台. ...

  8. WCF服务自我寄宿 Windows服务

    WCF寄宿有自我寄宿跟IIS寄宿 服务代码: [ServiceContract] ---服务契约 public interface ICustomerService { [OperationContr ...

  9. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

随机推荐

  1. Query Designer:公式冲突

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. pinpoint 安装部署

    .markdown-preview:not([data-use-github-style]) { padding: 2em; font-size: 1.2em; color: rgb(171, 178 ...

  3. Openstack+Kubernetes+Docker微服务实践之路--Docker和Registry2

    渐入佳境,我们开始比较具体的工作,由于Docker是一个基础组件,所以本文的主题是Docker和Registry2. 底层系统基于Centos7,先在一台云主机上安装Docker,Docker的安装非 ...

  4. (原创)RS232串口信号定义

    好久没用动硬件了,串口更是好久没用用了. 曾经接口信号记得很清楚,久了,忘了. 今天,重新回顾,笔记记下. DB9接口分公头和母头,公头即插针头,电脑机箱上多少公头.母头即插孔座. 合理的硬件设计均以 ...

  5. ajax post 请求415\ 400 错误

    今天用ajax 向后台发送 post请求时,出现了两个问题: 1, 发送请求后,控制台 返回  Unsupported media type-415(不支持的媒体类型),这时突然想起来,post 请求 ...

  6. viewPager 的可滑动 Title

    有三种方式: 1. 系统提供的title 缺点:标题在viewpager的滑动过程中也会滑动 实现:在ViewPager布局中添加 PagerTabStrip 或者是 PagerTitleStrip ...

  7. Distributed Databases and Data Mining: Class timetable

    Course textbooks Text 1: M. T. Oszu and P. Valduriez, Principles of Distributed Database Systems, 2n ...

  8. Pattern Recognition for Cell-free DNA - Github

    一直都没有找到生信领域简单易懂的机器学习案例,这回算是逮到一个了:机器学习识别cfDNA OpenGene/CfdnaPattern

  9. text-decoration

    2016-08-18  text-decoration  blink貌似在firefox里也不起作用? <p style="color:red;text-decoration:unde ...

  10. x-csrf-token