求复刻一款开机自启的多硬件测试工具(适配数百台台式/笔记本)
兄弟,太懂你每天折腾几百台台式、笔记本的苦了——手动挨个查硬件效率低到爆炸!你说的那款旧Ubuntu笔记本上的开机自启硬件测试工具,完全可以咱们自己一步步复刻出来,还能适配不同设备,直接把效率拉满。
先给你捋清楚核心需求:开机自动触发、覆盖主流硬件检测、轻量化(毕竟旧本都能跑),咱们照着这个方向来:
第一步:选靠谱的基础检测工具
Ubuntu上有一堆轻量又好用的硬件检测命令行工具,正好适合批量设备:lm-sensors:检测CPU、主板温度和风扇转速hwinfo:输出全面的硬件配置信息(从CPU到显卡、网卡全覆盖)smartmontools:检测硬盘健康状态,提前揪出坏盘memtester:内存稳定性测试,排查内存故障
先把这些工具装全:sudo apt install lm-sensors hwinfo smartmontools memtester
第二步:写整合式检测脚本
把上面的工具命令整合到一个shell脚本里,比如命名为hardware-test.sh,既可以输出到终端,也能把结果存成日志方便后续查看。给你个简单的示例脚本:#!/bin/bash # 批量硬件检测脚本 LOG_PATH="/var/log/hardware-test.log" # 清空旧日志(可选) > $LOG_PATH echo "=== 硬件检测报告 ===" >> $LOG_PATH echo "检测时间:$(date "+%Y-%m-%d %H:%M:%S")" >> $LOG_PATH echo "---------------------" >> $LOG_PATH # CPU与温度检测 echo "--- CPU与温度信息 ---" >> $LOG_PATH sensors >> $LOG_PATH echo "" >> $LOG_PATH # 硬盘健康检测(自动识别存储设备) echo "--- 硬盘健康状态 ---" >> $LOG_PATH for disk in /dev/sd? /dev/nvme?n1; do if [ -b $disk ]; then echo "设备:$disk" >> $LOG_PATH smartctl -a $disk >> $LOG_PATH 2>&1 echo "" >> $LOG_PATH fi done # 内存检测(这里用1024MB内存跑1次测试,可按需调整) echo "--- 内存稳定性测试 ---" >> $LOG_PATH memtester 1024 1 >> $LOG_PATH 2>&1 echo "---------------------" >> $LOG_PATH写完后给脚本加执行权限:
chmod +x hardware-test.sh第三步:设置开机自启
Ubuntu用systemd来做开机自启最稳,咱们创建一个服务文件:
在/etc/systemd/system/目录下新建hardware-test.service,内容如下:[Unit] Description=自动硬件检测服务 After=multi-user.target [Service] Type=simple # 替换成你的脚本实际路径 ExecStart=/home/your-user/hardware-test.sh # 只开机运行一次,不用重启 Restart=no # 以root权限运行,确保能读取所有硬件信息 User=root [Install] WantedBy=multi-user.target然后启用服务:
sudo systemctl enable hardware-test.service,重启机器后就能自动跑检测了!第四步:适配台式/笔记本差异
脚本里可以加个小判断,比如检测是否有笔记本电池,补充电池状态信息:# 笔记本电池检测 if command -v acpi &> /dev/null; then echo "--- 电池状态 ---" >> $LOG_PATH acpi -b >> $LOG_PATH echo "" >> $LOG_PATH fi
你提到的旧笔记本上的工具大概就是类似这种整合式的界面,咱们自己搭的脚本也可以进一步美化,比如用dialog工具做个简单的终端UI,让测试结果更直观:

这样一套下来,就能复刻出一款适合批量设备的开机自启硬件测试工具了,几百台设备挨个开机自动跑检测,你只需要事后看日志就行,省超多精力!
备注:内容来源于stack exchange,提问作者Kkailis Andreas

