提交 736df5f8 authored 作者: liupengfei's avatar liupengfei

stop.sh if语法错误

上级 6ba3608f
......@@ -2,7 +2,7 @@ package tools.deploy;
import java.io.*;
import java.net.URL;
import java.util.HashMap;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -45,10 +45,95 @@ public class GenerateScript {
logger.info("生成{}服务的关闭和启动脚本成功", k);
});
// 生成一键关闭所有服务的脚本
logger.info("生成一键关闭脚本");
// 生成一键关闭所有服务的脚本1 sh /opt/jgjy/batch.sh "/opt/jgjy/*-stop.sh"
createAllStopScript(rootpath);
// 生成一键关闭所有服务的脚本2 sh 每个-stop.sh
createAllStopScript(rootpath, map);
// 生成一键关闭所有服务的脚本3 sh killAll.sh 根目录
createAllStopScriptByKillALL(rootpath);
logger.info("生成一键关闭脚本成功");
logger.info("生成一键启动脚本");
// 生成一键启动所有服务的脚本
createAllStartScript(rootpath, map);
logger.info("生成一键启动脚本成功");
}
public static String createAllStartScript(String rootpath, Map<String, ServerEntity> map) {
File f = new File(rootpath + scriptPath + "all-start.sh");
logger.info("正在创建一键启动所有服务的脚本:{}", f.getAbsolutePath());
StringBuffer script = new StringBuffer(" \n ");
script.append(" sh " + rootpath + "/bin/svnup.sh " + rootpath); // 更新脚本
script.append(" \n ");
script.append(" mvn -f "+ rootpath +" clean install ");
ServerEntity eurekaServer = map.get("eureka");
script.append(" \n ");
script.append(eurekaServer.getStartScript());
script.append(" \n ");
script.append(" echo \"eureka 正在启动 等待20s...\" ");
script.append(" \n ");
script.append(" sleep 20 ");
script.append(" \n ");
ServerEntity configServer = map.get("config");
script.append(configServer.getStartScript());
script.append(" \n ");
script.append(" echo \"config 正在启动 等待20s...\" ");
script.append(" \n ");
script.append(" sleep 20 ");
script.append(" \n ");
map.keySet().stream().filter(s -> !"eureka".equals(s)).filter(s -> !"config".equals(s)).map(map :: get)
.sorted(Comparator.comparing(ServerEntity :: getLeave)).forEach(v -> {
script.append(" echo \""+ v.getName() +" 正在启动... \" ");
script.append(" \n ");
script.append(v.getStartScript());
script.append(" \n ");
script.append(" echo \""+ v.getName() +" 启动完成 \" ");
script.append(" \n ");
});
logger.info("一键启动所有服务脚本内容:{}", script.toString());
write(f, script.toString());
return f.getAbsolutePath();
}
public static String createAllStopScriptByKillALL(String rootpath){
File f = new File(rootpath + scriptPath + "all-stop3.sh");
logger.info("正在创建一键关闭所有服务的脚本3:{}", f.getAbsolutePath());
String script = " sh " + rootpath + "/bin/killAll.sh " + rootpath;
logger.info("一键关闭所有服务脚本3内容:{}", script);
write(f, script);
return f.getAbsolutePath();
}
public static String createAllStopScript(String rootpath, Map<String, ServerEntity> map) {
File f = new File(rootpath + scriptPath + "all-stop2.sh");
logger.info("正在创建一键关闭所有服务的脚本2:{}", f.getAbsolutePath());
StringBuffer script = new StringBuffer();
map.forEach((k,v) -> {
script.append(" echo \"正在关闭"+k+"服务\" ");
script.append(" \n ");
script.append(" sh " + v.getStopPath());
script.append(" \n ");
script.append(" echo \"关闭"+k+"服务成功\" ");
script.append(" \n ");
});
logger.info("一键关闭所有服务脚本2内容:{}", script.toString());
write(f, script.toString());
return f.getAbsolutePath();
}
/**
* Description: sh /opt/jgjy/batch.sh "/opt/jgjy/*-stop.sh"
* @param rootpath
* @return java.lang.String
* @author lpf
* @date 2019-11-325 11:20
*/
public static String createAllStopScript(String rootpath) {
File f = new File(rootpath + scriptPath + "all-stop1.sh");
logger.info("正在创建一键关闭所有服务的脚本1:{}", f.getAbsolutePath());
String script = " sh " + rootpath + "/bin/batch.sh \"" + rootpath + "/bin/server/*-stop.sh\"";
logger.info("一键关闭所有服务脚本1内容:{}", script);
write(f, script);
return f.getAbsolutePath();
}
public static String createStartScript(String rootpath, ServerEntity entity) {
File f = new File(rootpath + scriptPath + entity.getName() + "-start.sh");
......@@ -71,7 +156,11 @@ public class GenerateScript {
script.append(" mvn -f " + entity.getPath() + " clean package ");// 子项目打包
script.append(" \n ");
// 启动命令 sh start.sh /opt/svn/master5.0/com.zrqx.pom/app/order/target/*.jar /opt/svn/master5.0/com.zrqx.pom/log/order.log
script.append(" sh " + rootpath + "/bin/start.sh " + entity.getPath()+"/target/*.jar " + rootpath + "/log/" + entity.getName()+".log "); // 项目启动
String startScript = " sh " + rootpath + "/bin/start.sh " + entity.getPath()+"/target/*.jar " + rootpath + "/log/" + entity.getName()+".log ";
script.append(startScript); // 项目启动
entity.setStartScript(startScript);
script.append(" \n ");
script.append(" echo \"日志文件路径:"+ rootpath + "/log/" + entity.getName() +".log\" ");
script.append(" \n ");
logger.info("{}服务启动脚本内容:{}", entity.getName(), script.toString());
write(f, script.toString());
......
......@@ -21,4 +21,6 @@ public class ServerEntity {
private String startPath;
/** 服务等级 定义启动顺序 eureka 0 config 1 zull|其他服务治理服务 2 app服务 3 */
private int leave;
/** 启动命令,解决一键启动重复打包问题,在创建服务启动脚本时填充信息 java -jar... */
private String startScript;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论