#!/bin/bash # 检查是否以 root 权限运行 if [ "$EUID" -ne 0 ]; then echo "提示:建议使用 sudo 或 root 权限运行此脚本,以获取更准确的硬件信息。" fi echo "=================================================" echo " 服务器硬件配置与性能全面测试 " echo "=================================================" # 1. 收集系统基本信息 OS=$(hostnamectl | grep "Operating System" | cut -d: -f2 | sed 's/^[ \t]*//') KERNEL=$(uname -r) CPU_NAME=$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//') CPU_CORES=$(awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo) RAM_TOTAL=$(free -m | awk '/Mem:/ {print $2}') SWAP_TOTAL=$(free -m | awk '/Swap:/ {print $2}') VIRT=$(systemd-detect-virt) UPTIME=$(uptime -p) echo "操作系统 : $OS" echo "内核版本 : $KERNEL" echo "CPU 型号 : $CPU_NAME ($CPU_CORES 核)" echo "内存总量 : $RAM_TOTAL MB" echo "交换分区 : $SWAP_TOTAL MB" echo "虚拟化架构 : $VIRT" echo "运行时间 : $UPTIME" echo "=================================================" # 2. 测试硬盘 I/O 读写速度 echo "正在测试硬盘 I/O 读写速度 (请稍候)..." echo "-------------------------------------------------" # 使用 dd 命令进行三次不同块大小的写入测试 io1=$(dd if=/dev/zero of=test_io_file bs=64k count=16k conv=fdatasync 2>&1 | awk -F, '{io=$NF} END {print io}' | sed 's/^[ \t]*//') rm -f test_io_file io2=$(dd if=/dev/zero of=test_io_file bs=1M count=1k conv=fdatasync 2>&1 | awk -F, '{io=$NF} END {print io}' | sed 's/^[ \t]*//') rm -f test_io_file io3=$(dd if=/dev/zero of=test_io_file bs=4k count=10k conv=fdatasync 2>&1 | awk -F, '{io=$NF} END {print io}' | sed 's/^[ \t]*//') rm -f test_io_file echo "1M 块大小连续写入 : $io2" echo "64k 块大小写入 : $io1" echo "4k 块大小随机写入 : $io3" echo "=================================================" # 3. 测试三网下载速度 echo "正在测试三网节点下载速度 (依赖 speedtest-cli)..." echo "-------------------------------------------------" # 检查并尝试安装 speedtest-cli if ! command -v speedtest &> /dev/null; then echo "正在为您安装 speedtest 测试工具..." apt-get update -y > /dev/null 2>&1 apt-get install speedtest-cli -y > /dev/null 2>&1 fi if command -v speedtest &> /dev/null; then # 运行测速并过滤核心输出 speedtest --single else echo "错误:无法自动安装 speedtest-cli,请检查网络或手动执行 apt install speedtest-cli" fi echo "=================================================" echo " 测试完成!" echo "================================================="