修复一处脚本调用仍然使用原expect方式的问题;
增加执行linux命令的日志
This commit is contained in:
@@ -61,6 +61,7 @@ public class ConfigController extends Controller {
|
||||
result = safeProcessUtil.execShellSafe("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
try {
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
@@ -197,6 +198,7 @@ public class ConfigController extends Controller {
|
||||
result = safeProcessUtil.execShellSafe("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
try {
|
||||
List remoteExec = LinuxUtil.remoteExec(temp, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
@@ -210,6 +212,7 @@ public class ConfigController extends Controller {
|
||||
// 修改数据库的通信服务器地址信息
|
||||
try {
|
||||
String execLinuxCmd = LinuxUtil.execLinuxCmd("ping -c 3 " + ip);
|
||||
logger.info(ip + "执行:" + execLinuxCmd);
|
||||
if (execLinuxCmd.contains("ttl") && execLinuxCmd.contains("time")) {
|
||||
NodeTable modifyData = new NodeTable();
|
||||
modifyData.set("ip", ip);
|
||||
@@ -267,6 +270,7 @@ public class ConfigController extends Controller {
|
||||
for (NodeTable node : serverDtos) {
|
||||
if (node.getInt("isMaster") == 0) {
|
||||
try {
|
||||
logger.info(node.getStr("ip") + "执行:" + "reboot");
|
||||
LinuxUtil.remoteExec(node.getStr("ip"), node.getStr("user"), node.getStr("pwd"), "reboot");
|
||||
} catch (JSchException e) {
|
||||
logger.error("reboot error:" + node.getStr("ip"), e);
|
||||
@@ -290,6 +294,7 @@ public class ConfigController extends Controller {
|
||||
for (NodeTable node : serverDtos) {
|
||||
if (node.getInt("isMaster") == 0) {
|
||||
try {
|
||||
logger.info(node.getStr("ip") + "执行:" + "shutdown -h now");
|
||||
LinuxUtil.remoteExec(node.getStr("ip"), node.getStr("user"), node.getStr("pwd"), "shutdown -h now");
|
||||
} catch (JSchException e) {
|
||||
logger.error("shutdown error:" + node.getStr("ip"), e);
|
||||
@@ -297,6 +302,7 @@ public class ConfigController extends Controller {
|
||||
}
|
||||
}
|
||||
try {
|
||||
logger.info("本机执行:" + "shutdown -h now");
|
||||
LinuxUtil.execLinuxCmd("shutdown -h now");
|
||||
} catch (Exception e) {
|
||||
logger.error("shutdown error", e);
|
||||
|
||||
@@ -164,6 +164,7 @@ public class ProcessController extends Controller {
|
||||
//String updateResult = LinuxUtil.execLinuxCmd("/home/wwr/update.sh "+updateFile+" "+uploadPath);
|
||||
File uploadF = new File(updateFile);
|
||||
updateFile = uploadPath + File.separator + uploadF.getName();
|
||||
logger.info(ip + "执行:" + updateFile + " -C " + uploadPath);
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, "tar -xf " + updateFile + " -C " + uploadPath);
|
||||
if (remoteExec.get(1).toString().equals("0")) {
|
||||
process.set("update_result", 1);
|
||||
@@ -174,7 +175,9 @@ public class ProcessController extends Controller {
|
||||
process.set("update_date", DateUtil.formatTime(new Date()));
|
||||
logger.error("更新进程失败!");
|
||||
}
|
||||
logger.info(ip + "执行:" + scriptPath);
|
||||
LinuxUtil.remoteExec(ip, user, pwd, scriptPath);
|
||||
logger.info(ip + "执行:" + "rm -f " + updateFile);
|
||||
LinuxUtil.remoteExec(ip, user, pwd, "rm -f " + updateFile);
|
||||
/*if(StrKit.notBlank(updateResult)&&updateResult.equals("success")){
|
||||
/*}else{
|
||||
|
||||
@@ -59,9 +59,11 @@ public class RouteController extends Controller {
|
||||
logger.info("query route request para --" + sb.toString());
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
if ((Integer) serverDto.get("isMaster") == 1) {
|
||||
logger.info("本机执行:" + sb.toString());
|
||||
result = LinuxUtil.execShell("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
try {
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
@@ -119,10 +121,12 @@ public class RouteController extends Controller {
|
||||
logger.info("modify route request para --" + sb.toString());
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
if ((Integer) nodeTable.get("isMaster") == 1) {
|
||||
logger.info("本机执行:" + "device_config " + sb.toString());
|
||||
result = LinuxUtil.execShell("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
try {
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
result.put("in", execResult);
|
||||
@@ -168,10 +172,12 @@ public class RouteController extends Controller {
|
||||
logger.info("remove route request para --" + sb.toString());
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
if ((Integer) nodeTable.get("isMaster") == 1) {
|
||||
logger.info("本机执行:" + "device_config " + sb.toString());
|
||||
result = LinuxUtil.execShell("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
try {
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
result.put("in", execResult);
|
||||
@@ -215,10 +221,12 @@ public class RouteController extends Controller {
|
||||
logger.info("create route request para --" + sb.toString());
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
if ((Integer) nodeTable.get("isMaster") == 1) {
|
||||
logger.info("本机执行:" + "device_config " + sb.toString());
|
||||
result = LinuxUtil.execShell("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
try {
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
result.put("in", execResult);
|
||||
@@ -255,10 +263,12 @@ public class RouteController extends Controller {
|
||||
logger.info("queryRouteExist request para --" + sb.toString());
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
if ((Integer) nodeTable.get("isMaster") == 1) {
|
||||
logger.info("本机执行:" + "device_config " + sb.toString());
|
||||
result = LinuxUtil.execShell("device_config", sb.toString());
|
||||
} else {
|
||||
String remoteCommand = PropKit.get("device_config_scriptCmd") + " '" + sb.toString() + "'";
|
||||
try {
|
||||
logger.info(ip + "执行:" + remoteCommand);
|
||||
List remoteExec = LinuxUtil.remoteExec(ip, user, pwd, remoteCommand);
|
||||
String execResult = remoteExec.get(0).toString();
|
||||
result.put("in", execResult);
|
||||
|
||||
@@ -55,8 +55,7 @@ public class ProcessInfoService {
|
||||
|
||||
//获取脚本路径
|
||||
String scriptPath = PropKit.get("process_info_scriptPath");
|
||||
logger.debug("scriptPath:"+scriptPath);
|
||||
if(procList!=null && procList.size()>0 && !StringUtils.isEmpty(scriptPath)){
|
||||
if(procList!=null && procList.size() > 0){
|
||||
|
||||
for (ProcessInfo processInfo : procList) {
|
||||
Map<String,Object> proc=new HashMap<>();
|
||||
@@ -65,17 +64,18 @@ public class ProcessInfoService {
|
||||
String result=null;
|
||||
if(!StringUtils.isEmpty(pidFile)){
|
||||
try {
|
||||
String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+0+" "+pidFile;
|
||||
//String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+0+" "+pidFile;
|
||||
//result = LinuxUtil.execLinuxExpect(cmd);
|
||||
result = getResult(ip, user, pwd, pidFile);
|
||||
result = getByPid(ip, user, pwd, pidFile);
|
||||
} catch (Exception e) {
|
||||
logger.error("执行脚本失败!"+e);
|
||||
}
|
||||
}else{
|
||||
String keyword=processInfo.getStr("keyword");
|
||||
try {
|
||||
String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+1+" "+keyword;
|
||||
result = LinuxUtil.execLinuxExpect(cmd);
|
||||
//String cmd=scriptPath+" "+ip+" "+user+" "+pwd+" "+1+" "+keyword;
|
||||
//result = LinuxUtil.execLinuxExpect(cmd);
|
||||
result = getByKeyword(ip, user, pwd, keyword);
|
||||
} catch (Exception e) {
|
||||
logger.error("执行脚本失败!"+e);
|
||||
}
|
||||
@@ -189,7 +189,7 @@ public class ProcessInfoService {
|
||||
return processInfo;
|
||||
}
|
||||
|
||||
public static String getResult(String ip, String user, String pwd, String pidFile) {
|
||||
public static String getByPid(String ip, String user, String pwd, String pidFile) {
|
||||
String command = "";
|
||||
String result = "";
|
||||
try {
|
||||
@@ -205,10 +205,29 @@ public class ProcessInfoService {
|
||||
}*/
|
||||
command = "pid=`cat " + pidFile + "`;"
|
||||
+ "status=`ps -ef |grep $pid |grep -v -e grep -e tail -e expect |wc -l`;"
|
||||
+ "if [[ $status -eq '1' ]];then "
|
||||
+ "if [ $status -ge 1 ];then "
|
||||
+ "echo ${status},`ps -ef |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $5}'`,$pid,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $3}'`,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $4}'`;"
|
||||
+ "fi";
|
||||
logger.info(ip + "执行:" + command);
|
||||
result = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString();
|
||||
logger.info(ip + "执行结果:" + result);
|
||||
} catch (JSchException e) {
|
||||
logger.error(e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String getByKeyword(String ip, String user, String pwd, String keyword) {
|
||||
String command = "";
|
||||
String result = "";
|
||||
try {
|
||||
command = "status=`ps -ef |grep " + keyword + " |grep -v -e grep -e tail -e expect |wc -l`;"
|
||||
+ "if [ $status -ge 1 ];then "
|
||||
+ "echo ${status},`ps -ef |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $5}'`,$pid,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $3}'`,`ps aux |grep $pid |grep -v -e grep -e tail -e expect | awk '{print $4}'`;"
|
||||
+ "fi";
|
||||
logger.info(ip + "执行:" + command);
|
||||
result = LinuxUtil.remoteExec(ip, user, pwd, command).get(0).toString();
|
||||
logger.info(ip + "执行结果:" + result);
|
||||
} catch (JSchException e) {
|
||||
logger.error(e);
|
||||
}
|
||||
@@ -220,17 +239,19 @@ public class ProcessInfoService {
|
||||
String user = node.getStr("user");
|
||||
String pwd = node.getStr("pwd");
|
||||
String uploadPath = proc.getStr("upload_path");
|
||||
String scriptPath = PropKit.get("process_info_scriptPath");
|
||||
String mirrorPath = proc.getStr("mirror_path");
|
||||
String restartSh = proc.getStr("restart_sh");
|
||||
|
||||
try {
|
||||
List reset = LinuxUtil.remoteExec(ip, user, pwd, "tar -xf " + mirrorPath + " -C " + uploadPath);
|
||||
String cmd = "tar -xf " + mirrorPath + " -C " + uploadPath;
|
||||
logger.info(ip + "执行:" + cmd);
|
||||
List reset = LinuxUtil.remoteExec(ip, user, pwd, cmd);
|
||||
int resetState = Integer.parseInt(reset.get(1).toString());
|
||||
//String execResult = ProcessUtil.execLinuxExpect(scriptPath+" "+ip+" "+user+" "+pwd+" "+3+" "+mirrorPath);
|
||||
//if(StrKit.notBlank(execResult)&&execResult.contains("%#%")){
|
||||
// execResult=execResult.substring(execResult.indexOf("%#%")+3,execResult.lastIndexOf("%#%"));
|
||||
if (resetState == 0) {
|
||||
logger.info(ip + "执行:" + restartSh);
|
||||
List restart = LinuxUtil.remoteExec(ip, user, pwd, restartSh);
|
||||
logger.info(restart.get(0));
|
||||
int restartState = Integer.parseInt(restart.get(1).toString());
|
||||
|
||||
Reference in New Issue
Block a user