首页/系统/服务器硬件与 RAID 速查/盘清单采集脚本框架
硬盘故障与更换68 条

盘清单采集脚本框架

定期采集全机盘清单(型号、SN、固件、容量、槽位、SMART 摘要)并归档,可在换盘、扩容、报修时直接引用;脚本要可重复执行且只读。

盘清单采集脚本是什么

盘清单脚本的职责是把一台机器上的盘资产信息定期、可重复、只读地导出成带时间戳的文件:型号、序列号、容量、固件、槽位、SMART 摘要与阵列状态。它的价值在换盘、扩容、报修三个时点集中体现——手里先有机器现状的书面版本,才有对照基准。脚本设计的第一原则是只读,第二原则是输出格式稳定,第三原则是可被配置管理体系接管。

基本信息

适用平台Linux 服务器,依赖 smartmontools、storcli/perccli 或 sas3ircu 等厂商工具
执行权限读盘健康与卡侧信息通常需要 root
输出约定文件名带主机名与日期,内容分段标注来源命令
接入方式随巡检周期定时执行,重大变更后手动补采一次
存放位置本地归档目录或与监控、资产系统对接,避免单机孤岛

典型使用场景

  • 换盘前取证:动手前先采集一份现状清单,换盘后可逐项比对差异
  • 扩容规划:统计现有盘位、型号与固件分布,确认新盘能否与在役盘同规格
  • 报修材料:厂商要求提供配置与序列号时,直接用既有清单而不是现场临时敲命令
  • 审计留痕:证明某时间点的资产状态,回答合规问询
  • 故障复盘:把故障时段前后的清单放在一起看,判断是否属于批量问题

只读采集框架

只读采集框架
OUT=/var/log/disk-inv/$(hostname)-$(date +%F).txt  # 文件名带主机与日期
mkdir -p $(dirname $OUT)
{
  echo "== lsblk =="; lsblk -d -o NAME,SIZE,MODEL,SERIAL  # 系统侧盘身份
  echo "== raid =="; storcli /c0/eall/sall show all | grep -E "EID:Slt|SN =|Model|State"  # 卡侧槽位与状态
  echo "== smart =="; for d in /dev/sd?; do echo "-- $d"; smartctl -H -i $d | grep -E "Model|Serial|health"; done  # 健康摘要
} > $OUT
wc -l $OUT  # 确认输出非空,采集成功

采集项与来源

采集项来源命令用途
盘身份lsblk 与 smartctl -i资产核对与换盘对照
卡侧槽位storcli 或 perccli 的 eall/sall现场点灯与拔盘定位
健康摘要smartctl -H 与关键属性快速筛出异常盘
阵列状态卡工具的逻辑盘与物理盘状态确认是否处于降级
脚本改动走版本管理与评审:巡检采集逻辑一旦失传,历史数据和新数据就无法对齐口径。
采集脚本里不要出现任何写操作或格式化的分支,巡检工具误伤生产的代价远高于它带来的便利。

易错点

  • 输出缺主机名与时间戳:多机汇总时无法归属,只能全部作废
  • 把带写操作的命令混进巡检:脚本被顺手复用到生产机时后果不可控
  • 只在需要时才手敲命令:现场紧张时容易漏项,事后拿不到完整证据
  • 清单从不进资产系统:同一台机器的信息在不同文档里各说各话

数据来源与参考

  • Linux 系统管理实践(通用)
  • smartmontools 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌