whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/util/SerialNumberUtil.java
@@ -1,9 +1,7 @@
package com.whyc.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.*;
import java.util.Locale;
import java.util.Scanner;
/**
@@ -71,7 +69,8 @@
            }
        }else {
            //linux
            serial =getSerialNumber("dmidecode |grep 'Serial Number'", "Serial Number",":");        }
            serial =getSerialNumber("dmidecode |grep 'Serial Number'", "Serial Number",":");
        }
        return serial;
@@ -104,11 +103,47 @@
            }
        }else {
            //linux
            serial=getSerialNumber("fdisk -l", "Disk identifier",":");
            //中英文环境下,fdisk命令不同的结果,一个是中文,一个是英文名
            Locale locale = Locale.getDefault();
            if((locale.getLanguage().equals("zh"))){
                serial=getSerialNumber("fdisk -l", "磁盘标识符",":");
            }else{ //不是中文,则采用en_US
                serial=getSerialNumber("fdisk -l", "Disk identifier",":");
            }
        }
        return serial;
    }
    /**
     * 所有业务数据已占用的表空间大小的总和(单位:MB)
     * /tg使用,服务器为linux,空间包含:应用大小:/app 和 数据库存储大小: /var/lib/mysql/
     * @return
     */
    public static Integer getDataTableSpace(){
        int dataTableSpace=0;
        String execResult = executeLinuxCmd("du -sh /app /var/lib/mysql");
        //String execResult = executeLinuxCmd("du -sh /battery_system /var/lib");
        String[] infos = execResult.split("\n");
        for(String info : infos) {
            info = info.trim();
            info = info.replaceAll(" ", "");
            //String[] result = info.split(File.separator);
            String[] result = info.split("\t");
            String spaceStr = result[0];
            int space = Integer.parseInt(spaceStr.substring(0, spaceStr.length() - 1));
            if(spaceStr.endsWith("G")){
                dataTableSpace += space * 1024;
            }else if(spaceStr.endsWith("M")){
                dataTableSpace += space;
            }
        }
        return dataTableSpace;
    }
    /**linux*/
    public static String executeLinuxCmd(String cmd)  {
        try {