此脚本检测服务器的CPU型号、核心数、内存大小与硬盘大小
SHELL#!/bin/bash
# 检测是否安装了 dmidecode
if ! command -v dmidecode &> /dev/null; then
echo "dmidecode 未安装,正在尝试更新软件仓库缓存并安装..."
if [ -f /etc/redhat-release ]; then
sudo dnf install -y dmidecode || sudo yum install -y dmidecode
elif [ -f /etc/debian_version ]; then
sudo apt-get -y update && sudo apt-get install -y dmidecode
else
echo "不支持的系统类型,请手动安装 dmidecode"
exit 1
fi
echo "dmidecode 已成功安装"
fi
# 检测 Linux 系统类型和发行版
os_type=$(uname -o)
os_release="Unknown"
arch=$(uname -m)
if [ -f /etc/os-release ]; then
. /etc/os-release
os_release="$NAME $VERSION_ID"
elif [ -f /etc/lsb-release ]; then
os_release=$(grep DISTRIB_DESCRIPTION /etc/lsb-release | cut -d= -f2- | tr -d '"')
elif [ -f /etc/redhat-release ]; then
os_release=$(cat /etc/redhat-release)
fi
# 将架构标准化为 32bit 或 64bit
if [ "$arch" == "x86_64" ]; then
arch="64bit"
else
arch="32bit"
fi
echo "系统类型: $os_type"
echo "发行版: $os_release $arch"
# 检测 CPU 型号
cpu_model=$(grep -m 1 "model name" /proc/cpuinfo | awk -F: '{print $2}' | sed 's/^[ \t]*//')
echo "CPU型号: $cpu_model"
# 检测 CPU 核心数
cpu_cores=$(grep -c "^processor" /proc/cpuinfo)
echo "CPU核心数: $cpu_cores"
# 使用 dmidecode 获取内存设备信息
memory_info=$(dmidecode | grep -A16 "Memory Device$")
# 检测内存条数
memory_count=$(echo "$memory_info" | grep "Size:" | grep -v "No Module Installed" | wc -l)
# 检测内存总数 (GB)
memory_total=$(echo "$memory_info" | grep "Size:" | grep -Eo '[0-9]+ GB|[0-9]+ MB' | awk '{
if ($2 == "GB") sum += $1 * 1024;
else if ($2 == "MB") sum += $1;
} END {print sum/1024}')
# 输出内存信息
echo "内存条数: $memory_count"
echo "内存总数: ${memory_total}GB"
# 检测硬盘数量和型号/容量
disk_info=$(lsblk -d -o NAME,MODEL,SIZE | grep -E '^sd|^vd|^nvme')
disk_count=$(echo "$disk_info" | wc -l)
# 输出硬盘信息
echo "硬盘数量: $disk_count"
echo "硬盘型号和容量:"
echo "$disk_info"
# 输出结果
echo "检测完成"