smartctl是Linux下监控硬盘健康的核心工具,通过读取S.M.A.R.T.信息实现故障预警。1. 安装:Ubuntu/Debian用sudo apt install smartmontools,CentOS/RHEL/Fedora用sudo yum install smartmontools或sudo dnf install smartmontools,安装后执行smartctl --version验证。2. 检查SMART支持:运行smartctl -i /dev/sda查看是否显示“SMART support is: Available”和“Enabled”,若未启用则使用smartctl -s on /dev/sda开启。3. 健康检测:执行smartctl -H /dev/sda,结果为“PASSED”表示正常,“FAILED”需立即备份数据。4. 查看详细信息:使用smartctl -A /dev/sda获取温度、重定位扇区数等关键参数,重点关注Reallocated_Sector_Ct、Current_Pending_Sector、Power_On_Hours和Temperature_Celsius,数值接近阈值时风险升高。5. 自检测试:可运行smartctl -t short /dev/sda进行短时测试(几分钟),或smartctl -t long /dev/sda进行全面长时测试,完成后用smartctl -l selftest /dev/sda查看结果。6. 定期监控:

smartctl 是 Linux 系统中用于监控硬盘健康状态的强大工具,属于 smartmontools 软件包。它能读取硬盘的 S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)信息,帮助用户提前发现磁盘潜在故障,避免数据丢失。
安装 smartmontools
大多数 Linux 发行版默认未安装 smartctl,需手动安装:
- Ubuntu/Debian:运行 sudo apt install smartmontools
- CentOS/RHEL:运行 sudo yum install smartmontools 或 sudo dnf install smartmontools
- Fedora:运行 sudo dnf install smartmontools
安装完成后可通过 smartctl --version 验证是否成功。
查看硬盘 SMART 支持状态
使用以下命令检查指定硬盘是否支持 S.M.A.R.T.:
smartctl -i /dev/sda将 /dev/sda 替换为你的实际设备名(如 /dev/nvme0n1)。输出中若显示“SMART support is: Available”和“Enabled”,说明已启用。若未启用,可用:
smartctl -s on /dev/sda开启 SMART 功能。
执行磁盘健康检测
检查硬盘健康状况最常用命令是:
smartctl -H /dev/sda结果中若显示“PASSED”,表示当前磁盘健康状态正常;若显示“FAILED”,应立即备份数据并考虑更换硬盘。
查看详细 SMART 信息
获取完整的 SMART 数据,包括温度、重定位扇区数、通电时间等:
安装说明重要提醒:程序不支持二级目录安装,请使用一级目录或二级目录绑定!第一步,确定你的服务器支持PHP+mysql。第二步,确定你的服务器开启了gd库。第三步,将upload文件内的文件上传到网站的根目录第四步,访问你的域名+ /install/index.html进行安装,linux系统访问你的域名+ /Install/index.html第五步,按照安装程序步骤进行安装配置第六步,安装完毕后
重点关注以下属性:
- Raw_Read_Error_Rate:读取错误率,过高可能预示坏道
- Reallocated_Sector_Ct:已重映射扇区数,大于 0 需警惕
- Power_On_Hours:通电小时数,判断磁盘使用年限
- Temperature_Celsius:当前温度,持续高温影响寿命
- Current_Pending_Sector:待映射扇区,可能即将损坏
数值右侧为归一化值,越接近阈值(Threshold)越危险。
运行磁盘自检测试
smartctl 支持多种自检模式:
- 短时测试:smartctl -t short /dev/sda(几分钟内完成)
- 长时测试:smartctl -t long /dev/sda(耗时较长,全面扫描)
- 传输测试:smartctl -t conveyance /dev/sda(检查运输损伤)
测试启动后不会立即输出结果。要查看进度或结果,运行:
smartctl -l selftest /dev/sda设置定期监控(可选)
smartd 守护进程可后台监控磁盘。配置文件通常位于 /etc/smartd.conf。启用服务:
- 编辑配置:修改 /etc/smartd.conf 添加监控选项,例如:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner - 启动服务:sudo systemctl enable smartd && sudo systemctl start smartd
当磁盘异常时,系统可发送邮件告警。
基本上就这些。合理使用 smartctl 能有效预防磁盘故障,建议定期检查关键服务器或存储设备的硬盘状态。









