修改cmd空格的bug

dev
liuguijing 2 years ago
parent 6a6add6b60
commit 7e28d3ceb7

@ -21,12 +21,15 @@ public class Constants {
@Value("${cma.port}")
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 newCMD = "";
public static String shpath = "/usr/local/bin/xympadmn";
public static String serverpath = "";
public static String portpath = "";
@PostConstruct
@ -35,7 +38,8 @@ public class Constants {
port = cmaPort;
CMD = "/usr/local/bin/xympadmn --server=" + server + " --port=" + port + " --act=";
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.TermCtrlVo;
import java.util.ArrayList;
import java.util.List;
/**
@ -235,30 +236,38 @@ public class CmaUtil {
*
* @return
*/
public static String cmaCtrl(List<TermCtrlVo.CtrlBean> list, String cmdid, Integer requestId) {
StringBuffer strb = new StringBuffer();
strb.append(Constants.newCMD);
public static List<String> cmaCtrl(List<TermCtrlVo.CtrlBean> list, String cmdid, Integer requestId) {
ArrayList<String> strlist = new ArrayList<>();
strlist.add(Constants.shpath);
strlist.add(Constants.serverpath);
strlist.add(Constants.portpath);
if (StrUtil.isNotEmpty(cmdid)) {
strb.append(" --cmdid=" + cmdid);
strlist.add("--cmdid=" + cmdid);
}
if (CollectionUtil.isEmpty(list)) {
Asserts.fail("命令错误");
}
for (TermCtrlVo.CtrlBean bean : list) {
StringBuffer strb = new StringBuffer();
String name = bean.getName();
String value = bean.getValue();
strb.append(" --" + name);
if (name.equals("leftBottom") || name.equals("rightBottom")) {
strb.append("=" + value.replace(" ","\\"));
// strb.append("=" + "\"" + value + "\"");
} else {
strb.append("--" + name);
// if (name.equals("leftBottom") || name.equals("rightBottom")) {
//// strb.append("=" + value.replace(" ","\t"));
//// strb.append("=" + value.replace(" ","\t"));
//// strb.append("=" + "\"" + value + "\"");
//// strb.append("=" + "'" + value + "'");
//// strb.append("=" + "\"" + value.replace(" ", "\" \"") + "\"");
// strb.append("=" + value);
// } else {
strb.append("=" + value);
}
// }
strlist.add(strb.toString());
}
strb.append(" --clientid=10");
strb.append(" --reqid=" + requestId);
return strb.toString();
strlist.add("--clientid=10");
strlist.add("--reqid=" + requestId);
return strlist;
}
}

@ -1,5 +1,6 @@
package com.shxy.xymanager_common.util.xinyin;
import com.shxy.xymanager_common.constant.Constants;
import com.shxy.xymanager_common.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
@ -7,20 +8,19 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.UUID;
/**
*
*
*
* @author cy
*/
@Slf4j
public class ProcessExecUtils
{
public class ProcessExecUtils {
/**
*
*
*/
public static Integer exec(String cmd) {
String line = "";
@ -48,6 +48,35 @@ public class ProcessExecUtils
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();
}
int requestId = Constants.REQUEST_ID.addAndGet(1);
String cmd = CmaUtil.cmaCtrl(list, cmdid,requestId);
ProcessExecUtils.exec(cmd);
List<String> cmd = CmaUtil.cmaCtrl(list, cmdid, requestId);
ProcessExecUtils.execArray(cmd);
model.setRequestId(requestId);
DateTime now = DateTime.now();
model.setDate(now);

Loading…
Cancel
Save