81 lines
2.4 KiB
Bash
Executable File
81 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 设置输出文件名(使用时间戳来命名)
|
|
output_file="system_info_$(date +%Y%m%d_%H%M%S).txt"
|
|
|
|
# 将所有输出重定向到文件
|
|
{
|
|
echo "================系统配置信息=================="
|
|
echo "生成时间: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo
|
|
|
|
# 1&2. 主板信息
|
|
echo "---主板信息---"
|
|
if [ -f /sys/class/dmi/id/board_name ]; then
|
|
echo "主板型号: $(cat /sys/class/dmi/id/board_name)"
|
|
fi
|
|
if [ -f /sys/class/dmi/id/board_vendor ]; then
|
|
echo "主板厂商: $(cat /sys/class/dmi/id/board_vendor)"
|
|
fi
|
|
echo
|
|
|
|
# 3&4. 网络信息
|
|
echo "---网络信息---"
|
|
# 获取物理网卡列表
|
|
physical_interfaces=$(ls -l /sys/class/net/ | grep -v virtual | grep devices | awk -F"/" '{print $NF}')
|
|
|
|
echo "IP地址:"
|
|
for interface in $physical_interfaces; do
|
|
ip_addr=$(ip -4 addr show $interface 2>/dev/null | grep inet | awk '{print $2}')
|
|
if [ ! -z "$ip_addr" ]; then
|
|
echo "接口: $interface IP: $ip_addr"
|
|
fi
|
|
done
|
|
|
|
echo -e "\nMAC地址:"
|
|
for interface in $physical_interfaces; do
|
|
mac=$(ip link show $interface | grep 'link/ether' | awk '{print $2}')
|
|
if [ ! -z "$mac" ]; then
|
|
echo "接口: $interface MAC: $mac"
|
|
fi
|
|
done
|
|
echo
|
|
|
|
# 5. 系统版本
|
|
echo "---系统信息---"
|
|
echo "系统版本: $(lsb_release -d | cut -f2)"
|
|
echo "内核版本: $(uname -r)"
|
|
echo
|
|
|
|
# 6&7. 硬盘信息
|
|
echo "---硬盘信息---"
|
|
lsblk -d -o NAME,SIZE,SERIAL,MODEL | grep -v "loop"
|
|
echo
|
|
|
|
# 8. CPU信息
|
|
echo "---CPU信息---"
|
|
cpu_info=$(cat /proc/cpuinfo | grep "model name" | head -n 1 | cut -d ":" -f2)
|
|
cpu_cores=$(nproc)
|
|
echo "CPU型号:$cpu_info"
|
|
echo "CPU核心数: $cpu_cores"
|
|
echo
|
|
|
|
# 9&10. 内存信息
|
|
echo "---内存信息---"
|
|
echo "内存详细信息:"
|
|
if command -v dmidecode >/dev/null 2>&1; then
|
|
sudo dmidecode -t memory | grep -E "Size:|Type:|Speed:|Manufacturer:|Serial Number:" | grep -v "No Module Installed"
|
|
else
|
|
echo "请安装 dmidecode: sudo apt-get install dmidecode"
|
|
fi
|
|
echo
|
|
echo "总内存容量: $(free -h | grep "Mem:" | awk '{print $2}')"
|
|
echo
|
|
|
|
echo "==================完成======================="
|
|
} > "$output_file"
|
|
|
|
# 同时在屏幕上显示结果
|
|
cat "$output_file"
|
|
|
|
echo -e "\n系统信息已保存到文件: $output_file" |