package com.sohu.cache.server.data; /** * 代表操作系统的原始信息 * 及一些类型定义 */ public class OSInfo { //操作系统信息 uname -a private String uname; //发布版本 - /etc/issue private String issue; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getIssue() { return issue; } public void setIssue(String issue) { this.issue = issue; } public String toString() { return "OSInfo [uname=" + uname + ", issue=" + issue + "]"; } /** * 操作系统类型 */ public enum OSType{ LINUX("linux"), ; private String value; private OSType(String value) { this.value = value; } public String getValue() { return value; } public static OSType findByValue(String value) { for(OSType os : values()) { if(os.getValue().equals(value)) { return os; } } return null; } } /** * 操作系统的发行版本 */ public enum DistributionType{ //通用系列 LINUX("linux", "@@linux@@", new DistributionVersion[]{DistributionVersion.DEFAULT}), LINUX_OLD("linux_old", "@@linux_old@@", new DistributionVersion[]{DistributionVersion.DEFAULT}), //红帽系列 REDHAT("rhel", "red hat", new DistributionVersion[]{ DistributionVersion.REDHAT_4, DistributionVersion.REDHAT_45, DistributionVersion.REDHAT_5, DistributionVersion.REDHAT_52, DistributionVersion.REDHAT_54, DistributionVersion.REDHAT_6, DistributionVersion.REDHAT_65, DistributionVersion.REDHAT_7, DistributionVersion.REDHAT_71, DistributionVersion.REDHAT_72, }), //centos系列 CENTOS("centos", "centos", new DistributionVersion[]{ DistributionVersion.CENTOS_6, DistributionVersion.CENTOS_7, }), //ubuntu系列 UBUNTU("ubuntu", "ubuntu", new DistributionVersion[]{ DistributionVersion.UBUNTU_6, DistributionVersion.UBUNTU_7, DistributionVersion.UBUNTU_8, DistributionVersion.UBUNTU_810, DistributionVersion.UBUNTU_9, DistributionVersion.UBUNTU_910, DistributionVersion.UBUNTU_10, DistributionVersion.UBUNTU_1004, DistributionVersion.UBUNTU_1010, DistributionVersion.UBUNTU_1104, DistributionVersion.UBUNTU_1110, DistributionVersion.UBUNTU_13, DistributionVersion.UBUNTU_14, DistributionVersion.UBUNTU_1404, DistributionVersion.UBUNTU_1410, DistributionVersion.UBUNTU_15, DistributionVersion.UBUNTU_1504, DistributionVersion.UBUNTU_1510, }), //debian系列 DEBIAN("debian", "debian", new DistributionVersion[]{ DistributionVersion.DEBIAN_5, DistributionVersion.DEBIAN_50, DistributionVersion.DEBIAN_6, DistributionVersion.DEBIAN_60, DistributionVersion.DEBIAN_7, DistributionVersion.DEBIAN_8, }), //fedora系列 FEDORA("fedora", "fedora", new DistributionVersion[]{ DistributionVersion.FEDORA_14, DistributionVersion.FEDORA_15, DistributionVersion.FEDORA_16, DistributionVersion.FEDORA_17, DistributionVersion.FEDORA_18, DistributionVersion.FEDORA_19, DistributionVersion.FEDORA_20, DistributionVersion.FEDORA_21, DistributionVersion.FEDORA_22, }), //mint系列 MINT("mint", "mint", new DistributionVersion[]{ DistributionVersion.MINT_7, DistributionVersion.MINT_8, DistributionVersion.MINT_12, DistributionVersion.MINT_14, DistributionVersion.MINT_15, DistributionVersion.MINT_16, DistributionVersion.MINT_17, }), //opensuse系列 OPENSUSE("opensuse", "opensuse", new DistributionVersion[]{ DistributionVersion.OPENSUSE_11, DistributionVersion.OPENSUSE_12, DistributionVersion.OPENSUSE_13, }), //sles系列(SuSE Linux Enterprise Server) SLES("sles", "sles", new DistributionVersion[]{ DistributionVersion.SLES_11, DistributionVersion.SLES_12, DistributionVersion.SLES_13, }), //knoppix KNOPPIX("knoppix", "knoppix", new DistributionVersion[]{ DistributionVersion.KNOPPIX_4, DistributionVersion.KNOPPIX_5, DistributionVersion.KNOPPIX_6, DistributionVersion.KNOPPIX_7, }), ; //nmon文件对应的名字 private String nmonName; //发行版本对应的标志 private String distSign; private DistributionVersion[] versions; private DistributionType(String nmonName, String distSign, DistributionVersion[] versions) { this.nmonName = nmonName; this.distSign = distSign; this.versions = versions; } public String getNmonName() { return nmonName; } public String getDistSign() { return distSign; } public DistributionVersion[] getVersions() { return versions; } public static DistributionType findByContains(String value) { for(DistributionType type : values()) { if(value.contains(type.getDistSign())) { return type; } } return null; } } /** * 操作系统的发行版本号 */ public enum DistributionVersion{ //通用系列无版本 DEFAULT(""), //红帽系列 REDHAT_4("4"), REDHAT_45("45"), REDHAT_5("5"), REDHAT_52("52"), REDHAT_54("54"), REDHAT_6("6"), REDHAT_65("65"), REDHAT_7("7"), REDHAT_71("71"), REDHAT_72("72"), //centos系列 CENTOS_6("6"), CENTOS_7("7"), //ubuntu系列 UBUNTU_6("6"), UBUNTU_7("7"), UBUNTU_8("8"), UBUNTU_810("810"), UBUNTU_9("9"), UBUNTU_910("910"), UBUNTU_10("10"), UBUNTU_1004("1004"), UBUNTU_1010("1010"), UBUNTU_1104("1104"), UBUNTU_1110("1110"), UBUNTU_13("13"), UBUNTU_14("14"), UBUNTU_1404("1404"), UBUNTU_1410("1410"), UBUNTU_15("15"), UBUNTU_1504("1504"), UBUNTU_1510("1510"), //debian系列 DEBIAN_5("5"), DEBIAN_50("50"), DEBIAN_6("6"), DEBIAN_60("60"), DEBIAN_7("7"), DEBIAN_8("8"), //fedora系列 FEDORA_14("14"), FEDORA_15("15"), FEDORA_16("16"), FEDORA_17("17"), FEDORA_18("18"), FEDORA_19("19"), FEDORA_20("20"), FEDORA_21("21"), FEDORA_22("22"), //mint系列 MINT_7("7"), MINT_8("8"), MINT_12("12"), MINT_14("14"), MINT_15("15"), MINT_16("16"), MINT_17("17"), //opensuse系列 OPENSUSE_11("11"), OPENSUSE_12("12"), OPENSUSE_13("13"), //sles系列(SuSE Linux Enterprise Server) SLES_11("11"), SLES_12("12"), SLES_13("13"), //knoppix KNOPPIX_4("4"), KNOPPIX_5("5"), KNOPPIX_6("6"), KNOPPIX_7("7"), ; private String value; private DistributionVersion(String value) { this.value = value; } public String getValue() { return value; } } /** * 处理器架构 */ public enum ProcessorArchitecture{ X86_64("x86_64"), X86("x86"), UNKONW(""), ; private String value; private ProcessorArchitecture(String value) { this.value = value; } public String getValue() { return value; } } }