fix: 恢复linux信息

This commit is contained in:
caiyuchao
2025-04-17 11:37:08 +08:00
parent 80c2f0097f
commit c651f4169f

View File

@@ -1,9 +1,8 @@
package org.wfc.common.license.license; package org.wfc.common.license.license;
import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.InetAddress; import java.net.InetAddress;
import java.util.List; import java.util.List;
@@ -12,12 +11,8 @@ import java.util.stream.Collectors;
/** /**
* 用于获取客户Linux服务器的基本信息 * 用于获取客户Linux服务器的基本信息
*/ */
@Slf4j
public class LinuxServerInfos extends AbstractServerInfos { public class LinuxServerInfos extends AbstractServerInfos {
private final String[] CPU_SHELL = {"/bin/bash", "-c", "sudo dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"};
private final String[] MAIN_BOARD_SHELL = {"/bin/bash", "-c", "sudo dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"};
@Override @Override
protected List<String> getIpAddress() throws Exception { protected List<String> getIpAddress() throws Exception {
List<String> result = null; List<String> result = null;
@@ -49,49 +44,43 @@ public class LinuxServerInfos extends AbstractServerInfos {
@Override @Override
protected String getCPUSerial() throws Exception { protected String getCPUSerial() throws Exception {
String result = ""; //序列号
String CPU_ID_CMD = "sudo dmidecode"; String serialNumber = "";
BufferedReader bufferedReader = null;
Process p = null; //使用dmidecode命令获取CPU序列号
try { String[] shell = {"/bin/bash", "-c", "dmidecode -t processor | grep 'ID' | awk -F ':' '{print $2}' | head -n 1"};
p = Runtime.getRuntime().exec(new String[]{"sh", "-c", CPU_ID_CMD});// 管道 Process process = Runtime.getRuntime().exec(shell);
bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream())); process.getOutputStream().close();
String line = null;
int index = -1; BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = bufferedReader.readLine()) != null) {
// 寻找标示字符串[hwaddr] String line = reader.readLine().trim();
index = line.toLowerCase().indexOf("uuid"); if (StringUtils.isNotBlank(line)) {
if (index >= 0) {// 找到了 serialNumber = line;
// 取出mac地址并去除2边空格
result = line.substring(index + "uuid".length() + 1).trim();
break;
} }
}
} catch (IOException e) { reader.close();
log.error("获取cpu硬件信息失败", e); return serialNumber;
}
return result.trim();
// return GxServerSerialHelper.getLinuxSerial(CPU_SHELL);
} }
@Override @Override
protected String getMainBoardSerial() throws Exception { protected String getMainBoardSerial() throws Exception {
String result = ""; //序列号
String maniBord_cmd = "sudo dmidecode | grep 'Serial Number' | awk '{print $3}' | tail -1"; String serialNumber = "";
Process p;
try { //使用dmidecode命令获取主板序列号
p = Runtime.getRuntime().exec(new String[]{"sh", "-c", maniBord_cmd});// 管道 String[] shell = {"/bin/bash", "-c", "dmidecode | grep 'Serial Number' | awk -F ':' '{print $2}' | head -n 1"};
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); Process process = Runtime.getRuntime().exec(shell);
String line; process.getOutputStream().close();
while ((line = br.readLine()) != null) {
result += line; BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
break;
String line = reader.readLine().trim();
if (StringUtils.isNotBlank(line)) {
serialNumber = line;
} }
br.close();
} catch (IOException e) { reader.close();
log.error("获取主板信息错误", e); return serialNumber;
}
return result;
// return GxServerSerialHelper.getLinuxSerial(MAIN_BOARD_SHELL);
} }
} }