修改cmd空格的bug

dev
liuguijing 2 years ago
parent 6a6add6b60
commit 7e28d3ceb7

@ -21,12 +21,15 @@ public class Constants {
@Value("${cma.port}") @Value("${cma.port}")
public int cmaPort; public int cmaPort;
private static String server; public static String server;
private static int port; public static int port;
public static String CMD = ""; public static String CMD = "";
public static String newCMD = ""; public static String newCMD = "";
public static String shpath = "/usr/local/bin/xympadmn";
public static String serverpath = "";
public static String portpath = "";
@PostConstruct @PostConstruct
@ -35,7 +38,8 @@ public class Constants {
port = cmaPort; port = cmaPort;
CMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port + " --act="; CMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port + " --act=";
newCMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port; newCMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port;
serverpath = "--server=" + server;
portpath = "--port=" + port;
} }

@ -8,6 +8,7 @@ import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.vo.ScheduleRuleVo; import com.shxy.xymanager_common.vo.ScheduleRuleVo;
import com.shxy.xymanager_common.vo.TermCtrlVo; import com.shxy.xymanager_common.vo.TermCtrlVo;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -235,30 +236,38 @@ public class CmaUtil {
* *
* @return * @return
*/ */
public static String cmaCtrl(List<TermCtrlVo.CtrlBean> list, String cmdid, Integer requestId) { public static List<String> cmaCtrl(List<TermCtrlVo.CtrlBean> list, String cmdid, Integer requestId) {
StringBuffer strb = new StringBuffer(); ArrayList<String> strlist = new ArrayList<>();
strb.append(Constants.newCMD); strlist.add(Constants.shpath);
strlist.add(Constants.serverpath);
strlist.add(Constants.portpath);
if (StrUtil.isNotEmpty(cmdid)) { if (StrUtil.isNotEmpty(cmdid)) {
strb.append(" --cmdid=" + cmdid); strlist.add("--cmdid=" + cmdid);
} }
if (CollectionUtil.isEmpty(list)) { if (CollectionUtil.isEmpty(list)) {
Asserts.fail("命令错误"); Asserts.fail("命令错误");
} }
for (TermCtrlVo.CtrlBean bean : list) { for (TermCtrlVo.CtrlBean bean : list) {
StringBuffer strb = new StringBuffer();
String name = bean.getName(); String name = bean.getName();
String value = bean.getValue(); String value = bean.getValue();
strb.append(" --" + name); strb.append("--" + name);
if (name.equals("leftBottom") || name.equals("rightBottom")) { // if (name.equals("leftBottom") || name.equals("rightBottom")) {
strb.append("=" + value.replace(" ","\\")); //// strb.append("=" + value.replace(" ","\t"));
// strb.append("=" + "\"" + value + "\""); //// strb.append("=" + value.replace(" ","\t"));
} else { //// strb.append("=" + "\"" + value + "\"");
//// strb.append("=" + "'" + value + "'");
//// strb.append("=" + "\"" + value.replace(" ", "\" \"") + "\"");
// strb.append("=" + value);
// } else {
strb.append("=" + value); strb.append("=" + value);
// }
strlist.add(strb.toString());
} }
} strlist.add("--clientid=10");
strb.append(" --clientid=10"); strlist.add("--reqid=" + requestId);
strb.append(" --reqid=" + requestId); return strlist;
return strb.toString();
} }
} }

@ -1,5 +1,6 @@
package com.shxy.xymanager_common.util.xinyin; package com.shxy.xymanager_common.util.xinyin;
import com.shxy.xymanager_common.constant.Constants;
import com.shxy.xymanager_common.util.StringUtils; import com.shxy.xymanager_common.util.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -7,20 +8,19 @@ import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.List;
import java.util.UUID; import java.util.UUID;
/** /**
*
* *
*
* @author cy * @author cy
*/ */
@Slf4j @Slf4j
public class ProcessExecUtils public class ProcessExecUtils {
{
/** /**
* *
*
*/ */
public static Integer exec(String cmd) { public static Integer exec(String cmd) {
String line = ""; String line = "";
@ -48,6 +48,35 @@ public class ProcessExecUtils
return sendToCode; return sendToCode;
} }
/**
*
*/
public static Integer execArray(List<String> cmd) {
String[] strings = new String[cmd.size()];
String[] cmdstring = cmd.toArray(strings);
String line = "";
StringBuffer sb = new StringBuffer();
String result = "";
Integer sendToCode = -1;
try {
Process ps = Runtime.getRuntime().exec(cmdstring);
log.info("传入cmd信息:{}", cmd.toString());
BufferedReader reader = new BufferedReader(new InputStreamReader(ps.getInputStream()));
sendToCode = ps.waitFor();
log.info("进程返回结果:{}", sendToCode);
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
result = sb.toString();
if (StringUtils.isNotBlank(result)) {
log.info("查询最新结果:{}", result);
}
} catch (IOException e) {
log.error("IOException", e);
} catch (InterruptedException e) {
log.error("InterruptedException", e);
}
return sendToCode;
}
} }

@ -119,8 +119,8 @@ public class TermSetServiceImpl implements TermSetService {
cmdid = terminals.getCmdid(); cmdid = terminals.getCmdid();
} }
int requestId = Constants.REQUEST_ID.addAndGet(1); int requestId = Constants.REQUEST_ID.addAndGet(1);
String cmd = CmaUtil.cmaCtrl(list, cmdid,requestId); List<String> cmd = CmaUtil.cmaCtrl(list, cmdid, requestId);
ProcessExecUtils.exec(cmd); ProcessExecUtils.execArray(cmd);
model.setRequestId(requestId); model.setRequestId(requestId);
DateTime now = DateTime.now(); DateTime now = DateTime.now();
model.setDate(now); model.setDate(now);

Loading…
Cancel
Save