自动化巡检脚本纳入磁盘序列号检测,核心是为每块物理盘建立唯一不可伪造身份标识,支撑资产核对、故障溯源与合规审计;需用smartctl/nvme/hdparm等适配接口的命令获取真实序列号,结构化记录上下文信息,对接资产库做差异比对,并生成带签名和隐私保护的html审计报告。

在自动化巡检脚本中纳入磁盘序列号(Serial Number)检测,核心目标不是“多查一个字段”,而是让每块物理盘具备唯一、不可伪造的身份标识,从而支撑资产台账核对、故障溯源和合规审计。关键在于:用稳定命令获取真实序列号,与资产库比对,异常时标记并留痕。
选对命令:避开逻辑设备,直取物理盘序列
不同接口类型需适配不同工具,避免用 lsblk -o NAME,SERIAL 这类不总返回真实序列的命令:
- SATA/SAS 机械盘或SSD:优先用
sudo smartctl -i /dev/sdX | grep "Serial Number",结果稳定且含厂商原始信息 - NVMe 盘:必须用
sudo nvme id-ctrl /dev/nvme0n1 | grep "sn"(注意是小写 sn),smartctl对部分 NVMe 设备支持有限 - 无
smartctl或nvme?退而用sudo hdparm -I /dev/sdX | grep "Serial Number",但需验证输出是否为空或被截断
结构化采集:把序列号和上下文一起记录
单记一串字符没意义,需绑定位置、型号、状态等上下文才可用于审计:
- 每块盘输出格式建议统一为 CSV 行:
$(hostname),/dev/sda,ST1000LM048-2E7174,ZN46JF2K,online,2026-07-21 - 自动关联挂载点:用
lsblk -no MOUNTPOINT /dev/sda获取是否挂载在/或/data等关键路径 - 补充 SMART 健康状态:
sudo smartctl -H /dev/sda | grep "SMART overall-health",FAIL 状态同步标记为高风险资产
对接资产库:做差异比对而非只采集
巡检不是“拍快照”,而是“验一致性”。脚本中应嵌入比对逻辑:
- 预置资产清单(如
/etc/asset/disk_inventory.csv),含字段:主机名、设备名、序列号、上架日期、责任人 - 每次巡检后执行
comm -3 ,输出新增/缺失项 - 发现序列号存在但设备名变更(如
/dev/sdb → /dev/sdc),说明可能被重插或控制器重映射,需人工复核
审计就绪:输出带签名的归档报告
审计要的是“可验证、不可抵赖”的证据链:
- 每次巡检生成带时间戳的 HTML 报告,表格列明:设备路径、序列号、型号、健康状态、比对结果(MATCH / NEW / MISSING)
- 报告末尾自动追加校验码:
sha256sum disk_report_20260721.html >> audit_trail.log,防止事后篡改 - 敏感字段(如序列号)在 HTML 中默认隐藏,点击“显示详情”才展开,兼顾审计需要与最小权限原则











