fix: 恢复linux信息
This commit is contained in:
@@ -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) {
|
|
||||||
log.error("获取cpu硬件信息失败", e);
|
|
||||||
}
|
}
|
||||||
return result.trim();
|
|
||||||
// return GxServerSerialHelper.getLinuxSerial(CPU_SHELL);
|
reader.close();
|
||||||
|
return serialNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
@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();
|
||||||
br.close();
|
if (StringUtils.isNotBlank(line)) {
|
||||||
} catch (IOException e) {
|
serialNumber = line;
|
||||||
log.error("获取主板信息错误", e);
|
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
// return GxServerSerialHelper.getLinuxSerial(MAIN_BOARD_SHELL);
|
reader.close();
|
||||||
|
return serialNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user