批量shell操作重启tomcat

每次更新项目,都有好多重复单调的工作需要做,其实可以用脚本解决。

今天写了一段shell脚本,功能有两个:

1.机器不重启

1)停掉所有tomcat

2)删除所有自解压项目

3)重启base开头的项目

4)停止base开头的项目

5)替换base开头的项目的自解压项目配置文件

6)重启所有tomcat

2.机器重启

1)启动zookeeper

2) 启动dubbo控制台

3)启动activeMq

4) 启动iBackStage后台项目

5)所有tomcat启动

以下是代码,以供参考

package com.sdzn.util;

import java.util.ArrayList;
import java.util.List;

/**
 * Test 功能描述:用于生成项目在4号机的运维Shell代码
 *
 * @author RickyLee【lsr@sdzn.com.cn】
 * @date 2017/4/8 16:19
 */
public class Test {
    public static void main(String[] args) {
        List<String> list = getProjectList();
        creatRebootSh(list, "/Users/lishirong/sdznreboot");
        createUpdateSH(list, "/Users/lishirong/sdznrestart");
    }

    /**
     * 当阿里云服务器重启以后,根据此脚本来分别启动zookeeper、dubbo控制台、未来课堂后台、直播相关基础、业务、WEB服务
     *
     * @param list     dubbo项目总计
     * @param filePath 生成的脚本存储路径
     */
    private static void creatRebootSh(List<String> list, String filePath) {
        try {
            List<String> dataList = new ArrayList<String>();
            int pTotal=4+list.size();
            dataList.add("#! /bin/bash");
            dataList.add("echo \"-----------启动zookeeper..........\"");
            dataList.add("sleep 5s");
            dataList.add("/usr/local/zookeeper-3.4.8/bin/zkServer.sh start");
            dataList.add("sleep 5s");
            dataList.add("echo \"########################zookeeper完毕!【1/"+pTotal+"】########################\"");
            dataList.add("echo \"-----------启动dubbo控制台.......\"");
            dataList.add("/usr/local/dubbo_admin/apache-tomcat-6.0.35/bin/startup.sh");
            dataList.add("sleep 5s");
            dataList.add("echo \"########################dubbo控制台启动完毕!【2/"+pTotal+"】########################\"");
            dataList.add("echo \"-----------启动iBackStage项目....\"");
            dataList.add("/usr/local/iBackStage/bin/startup.sh");
            dataList.add("sleep 10s");
            dataList.add("echo \"########################iBackStage启动完毕!【3/"+pTotal+"】########################\"");
            dataList.add("echo \"-----------启动activeMq....\"");
            dataList.add("/usr/local/apache-activemq-5.9.1/bin/activemq start");
            dataList.add("sleep 10s");
            dataList.add("echo \"########################activeMq启动完毕!【4/"+pTotal+"】########################\"");
            int count=4;
            for (String vv : list) {
                count++;
                String[] v=vv.split("#");
                dataList.add("echo \"-----------启动"+v[0]+"项目....\"");
                dataList.add("/usr/local/dubbo_live/"+v[0]+"/bin/startup.sh");
                dataList.add("sleep 10s");
                dataList.add("echo \"########################"+v[0]+"启动完毕!【"+count+"/"+pTotal+"】########################\"");
            }
            dataList.add("echo \"----------本次更新已结束["+DateUtil.getNowTime()+"]-------------\"");
            FileUtil.writeFile(filePath, dataList, false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void createUpdateSH(List<String> list, String filePath) {
        try {
            List<String> dataList = new ArrayList<String>();
            dataList.add("#! /bin/bash");
            dataList.add("echo \"-----------第一步:停止所有tomcat..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                dataList.add("/usr/local/dubbo_live/"+v[0]+"/bin/shutdown.sh");
                dataList.add("sleep 5s");
                dataList.add("echo \"########################"+v[0]+"已停止!########################\"");
            }
            dataList.add("echo \"-----------第二步:删除所有tomcat自解压文件..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                dataList.add("rm -rf /usr/local/dubbo_live/" + v[0] + "/webapps/" + v[1]);
                dataList.add("echo \"########################/usr/local/dubbo_live/" + v[0] + "/webapps/" + v[1] + "删除成功!########################\"");
            }
            dataList.add("echo \"-----------第三步:启动base_tomcat..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                if(v[0].startsWith("base_")) {
                    dataList.add("/usr/local/dubbo_live/"+v[0]+"/bin/startup.sh");
                    dataList.add("sleep 5s");
                    dataList.add("echo \"########################" + v[0] + "已启动!########################\"");
                }
            }
            dataList.add("echo \"-----------第四步:停止base_tomcat..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                if(v[0].startsWith("base_")) {
                    dataList.add("/usr/local/dubbo_live/"+v[0]+"/bin/shutdown.sh");
                    dataList.add("sleep 3s");
                    dataList.add("echo \"########################" + v[0] + "已停止!########################\"");
                }
            }

            dataList.add("echo \"-----------第五步:停止base_tomcat..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                if(v[0].startsWith("base_")) {
                    dataList.add("rm -rf /usr/local/dubbo_live/" + v[0] + "/webapps/" + v[1] + "/WEB-INF/classes/application.properties");
                    dataList.add("cp /usr/local/live_config/" + v[0] + "/webapps/" + v[1] + "/WEB-INF/classes/application.properties /usr/local/dubbo_live/" + v[0] + "/webapps/" + v[1] + "/WEB-INF/classes/application.properties");
                    dataList.add("echo \"########################" + v[0] + "配置替换结束!########################\"");
                }
            }
            dataList.add("echo \"-----------第六步:重启所有tomcat..........\"");
            for (String vv : list) {
                String[] v=vv.split("#");
                dataList.add("/usr/local/dubbo_live/"+v[0]+"/bin/startup.sh");
                dataList.add("sleep 10s");
                dataList.add("echo \"########################"+v[0]+"已启动!########################\"");
            }
            dataList.add("echo \"----------本次更新已结束["+DateUtil.getNowTime()+"]-------------\"");
            FileUtil.writeFile(filePath, dataList, false);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 获取项目列表
     * @return
     */
    public static List<String> getProjectList() {
        List<String> list = new ArrayList<String>();
        list.add("base_backstage#live_base_service_backstage");
        list.add("base_base#live_base_service_base");
        list.add("base_LiveStreaming#live_base_service_LiveStreaming");
        list.add("base_payment#live_base_service_payment");
        list.add("base_statistics#live_base_service_statistic");
        list.add("base_support#live_base_service_support");
        list.add("base_user#live_base_service_user");
        list.add("backup_plantasks#ROOT");
        list.add("biz_backstage#live_biz_service_backstage");
        list.add("biz_base#live_biz_service_base");
        list.add("biz_LiveStreaming#live_biz_service_LiveStreaming");
        list.add("biz_mobile#live_biz_service_mobile");
        list.add("biz_payment#live_biz_service_payment");
        list.add("biz_statistics#live_biz_service_statistics");
        list.add("biz_support#live_biz_service_support");
        list.add("biz_user#live_biz_service_user");
        list.add("mq#ROOT");
        list.add("web#ROOT");
        list.add("web_api#ROOT");
        list.add("web_backstage#ROOT");
        list.add("web_mobile#ROOT");
        list.add("web_pass#ROOT");
        list.add("web_school#ROOT");
        return list;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值