files/bin/device_info
zhao cc0045a11f 更新 bin/device_info
Signed-off-by: zhao <zj18139624826@gmail.com>
2025-05-30 19:38:23 +08:00

85 lines
3.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# ================================================
# 脚本名称: 系统信息查询脚本
# 描述: 查询系统基本信息
# 版本: 1.0
# 作者: OPPEN321
# ================================================
# 颜色定义
RED="\033[1;31m"
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
BLUE="\033[1;34m"
CYAN="\033[1;36m"
WHITE="\033[1;37m"
RESET="\033[0m"
ARROW="${BLUE}${RESET}"
SEP="${CYAN}==============================================${RESET}"
print_section() {
echo -e "\n${SEP}"
echo -e "${GREEN}>>> $1${RESET}"
echo -e "${SEP}"
}
echo -e "${CYAN}=== 系统信息查询脚本 v1.0 ===${RESET}"
print_section "CPU 信息"
echo -e "${ARROW} CPU 总核心数 : ${WHITE}$(nproc)${RESET}"
if [ -f /proc/cpuinfo ]; then
echo -e "${ARROW} 型号名称 : ${WHITE}$(grep 'model name' /proc/cpuinfo | head -n1 | cut -d':' -f2 | sed 's/^\s*//')${RESET}"
echo -e "${ARROW} 当前频率 : ${WHITE}$(grep 'cpu MHz' /proc/cpuinfo | head -n1 | cut -d':' -f2 | sed 's/^\s*//') MHz${RESET}"
echo -e "${ARROW} 缓存大小 : ${WHITE}$(grep 'cache size' /proc/cpuinfo | head -n1 | cut -d':' -f2 | sed 's/^\s*//')${RESET}"
echo -e "${ARROW} 架构类型 : ${WHITE}$(lscpu | grep 'Architecture' | cut -d':' -f2 | sed 's/^\s*//')${RESET}"
echo -e "${ARROW} 每插槽核心数 : ${WHITE}$(lscpu | grep 'Core(s) per socket' | cut -d':' -f2 | sed 's/^\s*//')${RESET}"
echo -e "${ARROW} 每核心线程数 : ${WHITE}$(lscpu | grep 'Thread(s) per core' | cut -d':' -f2 | sed 's/^\s*//')${RESET}"
MAX_FREQ=$(lscpu | grep -E 'CPU max MHz|CPU MHz max' | cut -d':' -f2 | sed 's/^\s*//')
MIN_FREQ=$(lscpu | grep -E 'CPU min MHz|CPU MHz min' | cut -d':' -f2 | sed 's/^\s*//')
echo -e "${ARROW} 最大频率 : ${WHITE}${MAX_FREQ:-未知} MHz${RESET}"
echo -e "${ARROW} 最小频率 : ${WHITE}${MIN_FREQ:-未知} MHz${RESET}"
else
echo -e "${RED}× CPU 信息不可用(/proc/cpuinfo 文件缺失)${RESET}"
fi
print_section "内存信息"
free -h | awk -v arrow="$ARROW" '
$1 ~ /^Mem/ {
printf("%s 总内存 : %s\n%s 已使用 : %s\n%s 空闲内存 : %s\n", arrow, $2, arrow, $3, arrow, $4)
}'
print_section "磁盘信息"
df -h | grep -E '^/dev/' | awk -v arrow="$ARROW" '
{printf("%s %-15s 大小: %-7s 已用: %-7s 可用: %-7s 挂载点: %s\n", arrow, $1, $2, $3, $4, $6)}'
print_section "网卡信息"
if command -v ethtool >/dev/null 2>&1; then
for iface in $(ip -br addr show | awk '{print $1}' | grep -v '^lo$'); do
STATE=$(ip -br addr show "$iface" | awk '{print $2}')
IPADDR=$(ip -br addr show "$iface" | awk '{print $3}')
SPEED=$(ethtool "$iface" 2>/dev/null | grep 'Speed:' | awk '{print $2}' || echo "未知")
echo -e "${ARROW} 接口名称 : ${WHITE}$iface${RESET}"
echo -e "${ARROW} 状态 : ${WHITE}$STATE${RESET}"
echo -e "${ARROW} IP 地址 : ${WHITE}$IPADDR${RESET}"
echo -e "${ARROW} 速率 : ${WHITE}$SPEED${RESET}"
echo -e "${CYAN}----------------------------------------------${RESET}"
done
else
echo -e "${YELLOW}⚠ ethtool 未安装,仅显示基本网卡信息${RESET}"
ip -br addr show | awk -v arrow="$ARROW" '{printf("%s 接口: %-10s 状态: %-8s IP: %s\n", arrow, $1, $2, $3)}'
fi
print_section "资源限制"
ulimit -a | while read -r line; do
echo -e "${ARROW} $line"
done
echo -e "\n${GREEN}✅ 系统信息查询完成。${RESET}\n"
read -p "按 Enter 键返回..."
}
# 执行查询
system_cpuinfo