Linux 中 Smartmontools 的 smartctl 实用程序指南

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

如果您正在使用 VPS 或专用服务器,磁盘稳定性并非可选项——它是至关重要的。一块故障驱动器就可能导致数据丢失、停机以及高昂的恢复成本。这就是为什么 Linux 系统管理员依赖 smartctl——这是一款强大的命令行工具,可通过 S.M.A.R.T. 让您直接访问驱动器诊断信息。

本指南将带您了解如何在 Linux 上使用 smartctl,包括实用命令、真实示例以及智能自动化。

什么是 smartctl?

smartctl 是 Smartmontools 软件包的一部分。它允许访问 S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology),该技术内置于大多数现代 HDD 和 SSD 中。

使用 smartctl,您可以:

  • 检查驱动器健康状态
  • 运行短测试或扩展自检
  • 查看温度和性能指标
  • 及早发现硬件故障迹象

支持的硬件包括:

  • SATA / IDE / SCSI / NVMe 驱动器
  • SSD 和 HDD
  • 大多数 Linux 服务器发行版和托管平台

为什么使用 smartctl?

优势收益
及早发现故障在数据丢失发生前加以防止
实时诊断无需重启即可监控您的驱动器
易于自动化可与 cron、脚本和告警良好配合
硬件级可见性无需猜测——直接获取驱动器原始数据
适合 DevOps 和 sysadmin广泛用于数据中心和云服务器

如何安装 Smartmontools

安装取决于您的 Linux 发行版:

OS安装命令
Ubuntu/Debiansudo apt update && sudo apt install smartmontools
CentOS/RHELsudo yum install smartmontools
Fedorasudo dnf install smartmontools
Arch Linuxsudo pacman -S smartmontools

安装完成后,可通过终端使用 smartctl 命令。

smartctl 基本命令

命令作用
smartctl -i /dev/sda显示驱动器信息
smartctl -H /dev/sda检查整体健康状态
smartctl -A /dev/sda列出详细的 S.M.A.R.T. 属性
smartctl -t short /dev/sda启动短(2-min)自检
smartctl -t long /dev/sda启动完整扩展自检(10–60 min)
smartctl -l selftest /dev/sda显示测试历史
smartctl -l error /dev/sda显示错误日志

📌 请将 /dev/sda 替换为您的实际驱动器(例如,NVMe SSD 使用 /dev/nvme0n1)。

示例:检查驱动器健康状况

sudo smartctl -H /dev/sda

预期输出:

SMART overall-health self-assessment test result: PASSED

如果结果为 PASSED,则您的驱动器当前健康。
如果显示 FAILED——请立即备份并计划更换。

需要监控的关键 SMART 属性

ID属性含义
5Reallocated Sector Count坏扇区已重新映射到备用空间
197Current Pending Sector Count等待重新读取的扇区
198Offline Uncorrectable Count存在读/写错误的扇区
194Temperature (Celsius)为获得最佳性能请保持低于 50 °C

这些字段的数值增加 = 驱动器正在劣化。

推荐监控计划

任务频率
-H health check每周
Short test (-t short)每周
Long test (-t long)每月
Error log review在崩溃或 I/O 问题后
Temperature monitoring持续(通过脚本)

使用 Cron 自动化

示例:每周发送一份磁盘健康状况邮件报告

0 3 * * 1 smartctl -H /dev/sda | mail -s "SMART Health Report" you@example.com

📌 请确保已安装 mailutils 或 sendmail。

结论

smartctl 是一款轻量但强大的工具,任何 sysadmin 都不应忽视。借助它,您可以保持服务器健康,保护您的数据安全,并让您的基础设施保持主动防护。