温馨提示×

Ubuntu CPUInfo如何导出数据

小樊
40
2026-01-05 18:44:41
栏目: 智能运维

Ubuntu CPUInfo 导出数据

一 常用导出方式

  • 使用 lscpu:适合导出结构化的 CPU 架构信息(如架构、核心/线程、频率等)。示例:lscpu > cpuinfo_lscpu.txt。该命令输出字段清晰,便于后续解析与归档。
  • 查看 /proc/cpuinfo:适合导出最原始、最细粒度的每核信息(如 flags、cache、bogomips 等)。示例:cat /proc/cpuinfo > cpuinfo.txt。
  • 使用 dmidecode(需 sudo):适合导出 DMI/SMBIOS 层面的处理器信息(如型号、核心/线程、制造商等)。示例:sudo dmidecode -t processor > cpuinfo_dmi.txt。

二 一键导出脚本 将常用 CPU 信息导出到当前目录的 cpuinfo_$(date +%F).tar.gz 归档中,便于保存与传输:

#!/usr/bin/env bash
OUT="cpuinfo_$(date +%F)"
mkdir -p "$OUT"

lscpu > "$OUT/lscpu.txt"
cat /proc/cpuinfo > "$OUT/cpuinfo.txt"
sudo dmidecode -t processor > "$OUT/cpuinfo_dmi.txt" 2>/dev/null

tar -czf "${OUT}.tar.gz" "$OUT"
echo "Saved to ${OUT}.tar.gz"

说明:

  • 若缺少命令,可先安装:sudo apt-get update && sudo apt-get install -y dmidecode。
  • 归档内包含三类文件:lscpu 的结构化摘要、/proc/cpuinfo 的原始明细、dmidecode 的 DMI 处理器信息。

三 导出为 CSV 或 JSON 便于分析

  • 将 /proc/cpuinfo 转换为 CSV(以冒号为分隔,保留前 6 列,便于 Excel/表格工具导入):
cat /proc/cpuinfo | awk -F: '{
  gsub(/^[ \t]+|[ \t]+$/, "", $1); gsub(/^[ \t]+|[ \t]+$/, "", $2);
  printf "%s,%s,%s,%s,%s,%s\n", $1, $2, $3, $4, $5, $6
}' > cpuinfo.csv
  • 使用 inxi 输出为 JSON(结构化、便于程序解析;若未安装:sudo apt-get install -y inxi):
inxi -C -J > cpuinfo.json

提示:/proc/cpuinfo 是“键: 值”的半结构化文本,CSV 仅做简易转换;如需严格建模,建议基于 JSON 或专用解析器处理。

四 只导出关键指标的小抄

  • 逻辑处理器数量:nproc
  • 型号名称(去重):grep -m1 “model name” /proc/cpuinfo | cut -d: -f2 | sed ‘s/^ *//’
  • 物理 CPU 颗数:grep -E ‘^physical id’ /proc/cpuinfo | sort -u | wc -l
  • 每颗物理 CPU 的物理核心数:grep -E ‘^cpu cores’ /proc/cpuinfo | uniq | cut -d: -f2 | sed ‘s/^ *//’
  • 每核线程数:lscpu | awk -F: ‘/Thread(s) per core/ {gsub(/ /,“”,$2); print $2}’
  • 汇总并写入文件:
{
  echo "logical_cpus $(nproc)"
  echo "model_name $(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | sed 's/^ *//')"
  echo "physical_cpus $(grep -E '^physical id' /proc/cpuinfo | sort -u | wc -l)"
  echo "cores_per_socket $(grep -E '^cpu cores' /proc/cpuinfo | uniq | cut -d: -f2 | sed 's/^ *//')"
  echo "threads_per_core $(lscpu | awk -F: '/Thread\(s\) per core/ {gsub(/ /,"",$2); print $2}')"
} > cpuinfo_summary.txt

上述命令覆盖了日常巡检与容量规划中最常用的 CPU 指标,并可直接重定向保存。

0