`
flamenco
  • 浏览: 41963 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ICE中间件开发,IceGrid自动化布署Shell脚本封装

 
阅读更多
#!/bin/sh
#set -x

log_registry=registry.log
log_node=node.log
config_registry=config.grid
config_node=config.node
config_application=application.xml
tmp=

function usage(){
  echo "Usage: ./iceserver.sh ( commands ... )"
  echo "commands:"
  echo "  -r|reg             Start the IceGrid Registry"
  echo "  -n                  Start the IceGrid Node"
  echo "  -a|app         Deploy the IceGrid Application"
  echo "  -s                Start or Stop the IceGrid Server"
  echo "  -h|help               Help the IceGrid"
  echo "  -v|version            Display the IceGrid Version"
  echo "other comands:"
  echo "  application Manage the IceGrid"
  echo "  node Manage the IceGrid"
  echo "  registr Manage the IceGrid"
  echo "  server Manage the IceGrid"
  echo "  service Manage the IceGrid"
  echo "  adapter Manage the IceGrid"
  echo "  object                Manage the IceGrid"
  echo "  server template       Manage the IceGrid"
  echo "  service template      Manage the IceGrid"
  exit 1
}

function registry(){
   if [ $# != 2 ]; then
      echo "No registry config file. Please input $0 $1 registry_config_path"
      exit 1
   fi
   if [ ! -f "$2" ] ; then
      echo "$2 does not exist"
      exit 1
   fi
   config_registry=$2
   tmp=`ps -ef | grep icegridregistry | wc -l`
   if [ $tmp -eq 1 ]; then    
      if [ ! -f "$log_registry" ]; then
         touch "$log_registry"
      fi
      icegridregistry --Ice.Config\="$config_registry" > "$log_registry" &
   else
      icegridregistry --Ice.Config\="$config_registry" > "$log_registry"
   fi
  
   if [ $? -eq 0 ]; then
      echo "Start IceGrid Registry Success"
   else
      echo "The IceGrid Already Registry"
      exit 1
   fi
}

function node(){
   if [ $# != 2 ]; then
      echo "No node config file. Please input $0 $1 node_config_path"
      exit 1
   fi
   if [ ! -f "$2" ] ; then
      echo "$2 does not exist"
      exit 1
   fi
   config_node=$2
   tmp=`ps -ef | grep icegridnode | wc -l`
   if [ $tmp -eq 1 ]; then
      if [ ! -f "$log_node" ]; then
         touch "$log_node"
      fi
      icegridnode --Ice.Config\="$config_node" > "$log_node" &
   else
      echo "The IceGrid Node Already Start"
      exit 1
   fi
  
   if [ $? -eq 0 ]; then
      echo "Start IceGrid Node Start Success"
   else
      echo "The IceGrid NodeAlready Start"
      exit 1
   fi

}

function application(){
   var_application="application"
   if [ $# -gt 1 ]; then
      shift
      icegridadmin --Ice.Config\="$config_registry" -e "$var_application $1 $2 $3 $4 $5 $6 $7 $8 $9"
      exit 1
   fi  

   tmp=`icegridadmin --Ice.Config\="$config_registry" -e "application list"`

   if [ X"$tmp" = "X" ]; then
      icegridadmin --Ice.Config\="$config_registry" -e "application add $config_application"
      echo "Add IceGrid Application Success"
   else
      icegridadmin --Ice.Config\="$config_registry" -e "application update $config_application"
      echo "Update IceGrid Application Success"
   fi
}

function server(){
   var_server="server"
   if [ $# -gt 1 ]; then
      if [ "$3" = "all" ]; then
         if [ "$2" = "start" ]; then
            startall 
         elif [ "$2" = "stop" ]; then
            stopall
         fi
         exit 1
      fi

      shift
      icegridadmin --Ice.Config\="$config_registry" -e "$var_server $1 $2 $3 $4 $5 $6 $7 $8 $9"
      exit 1
   fi
  
   tmp=`icegridadmin --Ice.Config\="$config_registry" -e "server list"`
   for server_id in $tmp; do
      icegridadmin --Ice.Config\="$config_registry" -e "server state $server_id"
      if [ $? -eq 0 ]; then
         echo "$server_id state success"
      else
         echo "$server_id state fail"
      fi
   done
}

function startall(){
   tmp=`icegridadmin --Ice.Config\="$config_registry" -e "server list"`
   for server_id in $tmp; do
      icegridadmin --Ice.Config\="$config_registry" -e "server start $server_id"
      if [ $? -eq 0 ]; then
         echo "$server_id start success"  
      else
         echo "$server_id start fail"
      fi
   done
}

function stopall(){
   tmp=`icegridadmin --Ice.Config\="$config_registry" -e "server list"`
   for server_id in $tmp; do
      icegridadmin --Ice.Config\="$config_registry" -e "server stop $server_id"
      if [ $? -eq 0 ]; then
         echo "$server_id stop success"
      else
         echo "$server_id stop fail"
      fi
   done
}


function help(){

   if [ $# -eq 1 ]; then
      shift
      icegridadmin --Ice.Config\="$config_registry" -e "help"
   fi
}

function all(){
  
   if [ $# -eq 1 ]; then
       icegridadmin --Ice.Config\="$config_registry" -e "$1 help"     
   fi

   if [ $# -gt 1 ]; then
      icegridadmin --Ice.Config\="$config_registry" -e "$1 $2 $3 $4 $5 $6 $7 $8 $9"
   fi
}

case $1 in
   -r|reg)
      registry $@
   ;;
   -n)
      node $@
   ;;
   -a|app)
      application $@
   ;;
   -s)
      server $@
   ;;
   -h|help)
      help $@
   ;;
   -v|version)
      echo "The IceGrid version is 3.4.1"
   ;;
   application|node|registry|server|service|adapter|object)
      all $@
   ;;
   *)
      usage
    ;;
esac

exit $?
分享到:
评论

相关推荐

    ICE中间件技术详细教程_ICE_中间件_

    ICE(Internet Communication Engine)中间件是一种高性能、跨平台的分布式计算框架,由ZeroC公司开发。这个技术详细教程涵盖了ICE的各个方面,对于初学者来说,是深入理解和掌握ICE的宝贵资源。下面,我们将深入...

    Zeroc ICE中间件slice2java的ant脚本

    6. 分布式系统开发:理解在使用Ice中间件时,如何组织和管理源代码,以及如何利用构建工具自动化构建过程。 以上知识点对于进行基于Ice的Java开发人员来说至关重要,他们需要熟悉这些工具和技术来提高开发效率和...

    基于ICE中间件的分布式应用开发研究.pdf

    本文研究了基于ICE中间件的分布式应用开发,通过介绍中间件的特点,分析了ICE中间件的架构及主要构成,以地面测试人员获取远端被测设备的系统时间为例,介绍了一种基于ICE中间件的分布式应用程序开发过程与方法,并...

    ICE中间件资料大全

    ICE是一款高效、灵活且可扩展的中间件,由ZeroC公司开发,旨在简化多语言、跨平台的分布式系统开发。这份资料集合对于开发人员来说尤其宝贵,因为它不仅涵盖了ICE的基本概念和技术原理,还包含了一些实践经验和技术...

    Ice 中间件 java c++

    Ice中间件,java c++ ,开发框架

    ICE中间件中文手册

    ICE(Integration, Communication, and Embedding)中间件是由ZeroC公司开发的一款高性能、跨平台的分布式系统通信框架。它基于Corba(Common Object Request Broker Architecture)理念,但设计更为现代,提供了更...

    基于ICE中间件的分布式卫星地面测试系统研究.pdf

    ICE(Internet Communication Engine)是ZeroC公司开发的一种中间件技术,支持面向对象的消息传递与远端过程调用(RPC)。在分布式系统中,ICE通过抽象、封装网络通信细节,使开发者可以专注于业务逻辑的实现,而...

    Zeroc ICE中间件slice2java的ant脚本(v1u0_0)

    在这个名为"Zeroc ICE中间件slice2java的ant脚本(v1u0_0)"的资源中,包含了一个Ant构建脚本`slice2java.xml`。Ant是一个基于Java的构建工具,它允许通过XML格式的配置文件来执行任务,如编译、打包、测试等。`...

    基于Zookeeper的分布式ICE中间件研究.pdf

    总的来说,这项研究的核心是利用Zookeeper来实现分布式ICE中间件中IceGrid服务的高可用性改进,其主要贡献在于提供了一种自动化主从切换的解决方案,大大简化了分布式系统中的故障恢复过程,从而提高了系统的整体...

    ice中间件平台_中文教程

    ICE(Internet Communications Engine)是由ZeroC公司开发的一种面向对象的中间件平台,用于构建分布式应用程序。它提供了一套丰富的通信和对象管理服务,使得开发者能够更容易地创建分布式系统。ICE支持多种编程...

    ICE中间件在机器人中的应用

    文章还介绍了一个使用ICE中间件开发的多机器人协作算法案例。该案例展示了如何利用ICE中间件实现多机器人之间的高效通信和协调,从而实现更复杂的任务执行。通过该案例,可以观察到ICE中间件如何简化多机器人系统的...

    基于ICE中间件的分布式搜索服务

    ICE(Internet Communications Engine)是由ZeroC公司开发的一款开源中间件系统,它提供了一种高效的面向对象的分布式计算框架。ICE作为一种通用的中间件平台,允许不同语言编写的程序通过网络互相通信和协作。这种...

    ICE中间件介绍

    ZeroC公司的ICE中间件的简单介绍。很好的网络通信中间件。

    ICE中间件使用说明加教程

    时下比较流行的强大中间件ICE 当中包括ICE3.2和3.3两个版本,要按照不同的VS版本来安装。 压缩包中已经有详细的教程和使用说明! 遗憾的是要分两个分卷来上传!不好意思。

    ICE分布式中间件开发VS分布式开发之ACE

    ### ICE分布式中间件开发VS分布式开发之ACE #### ICE分布式中间件概述 ICE(Internet Communications Engine)是一款由ZeroC公司提供的高性能、轻量级的中间件解决方案,它主要用于构建分布式应用程序和服务。ICE...

    linux平台下的ice通信中间件

    总结来说,Linux平台下的ICE通信中间件是一个全面的解决方案,通过提供多语言支持、强大的通信机制和易于使用的开发工具,帮助开发者构建高效、可靠和可扩展的分布式系统。这些组件涵盖了开发、运行和管理ICE应用所...

    ICE中间件简介PDF

    此外,中间件还能够封装复杂的事务处理逻辑,使得开发人员能够更加专注于业务逻辑的实现。 #### 三、ICE中间件技术 ICE(Internet Communication Engine,网络通信引擎)是一种高性能的面向对象中间件平台,由...

    mysql自动备份shell脚本

    手动备份虽然可靠,但耗时且容易遗漏,而通过编写shell脚本实现自动化备份则能极大地提高效率,确保数据的安全性。以下是一些关于如何创建和使用MySQL自动备份shell脚本的详细说明: 首先,我们需要一个能够执行...

    ICE中间件教程

    ### ICE中间件教程知识点梳理 #### 一、ICE概述与结构 **1.1 ICE概述** ICE (Internet Communication Engine) 是一种高性能、可扩展的中间件框架,它为分布式应用程序提供了一种简单而强大的通信机制。ICE支持...

Global site tag (gtag.js) - Google Analytics