批量shell操作重启tomcat

来源:互联网 发布:linux教程 孟庆昌 pdf 编辑:程序博客网 时间:2024/05/10 02:20

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

今天写了一段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
原创粉丝点击