在Linux命令行中,查看硬盘使用时间主要通过读取硬盘SMART信息实现,核心工具为smartctl(需安装smartmontools包),基本命令为sudo smartctl -a /dev/sdX(sdX为硬盘设备名,如sda),输出中“Power On Hours”或“Powered On Hours”字段即硬盘通电时间,若需批量查看,可结合lsblk列出所有硬盘设备后逐一执行,该方法能直观反映硬盘使用时长,有助于判断设备老化程度及潜在故障风险,是日常运维的重要监测手段。
在Linux系统中,硬盘作为核心存储设备,其使用状态直接关系到数据安全和系统稳定性,了解硬盘的累计工作时间、通电次数等信息,有助于用户提前判断硬盘健康状况,避免因硬盘故障导致数据丢失,本文将详细介绍通过Linux命令行查看硬盘使用时间的多种方法,重点推荐最可靠的smartctl工具,并辅以其他辅助命令供参考。
为什么需要查看硬盘使用时间?
硬盘属于机械消耗品(尤其是传统HDD),其内部部件(如马达、磁头)会随着使用时间的增加而老化,通过查看硬盘的通电时间(Power-On Hours)和通电次数(Power Cycle Count),可以大致判断硬盘的使用强度和潜在寿命,若一台硬盘通电时间已达5年(约43800小时,按每天24小时计算),即使未出现故障,也建议提前备份数据并考虑更换。
推荐方法:使用smartctl工具(最可靠)
smartctl是smartmontools工具包的核心命令,用于监控硬盘的SMART(Self-Monitoring, Analysis and Reporting Technology,自我监控、分析和报告技术)信息,SMART是硬盘厂商内置的健康监测系统,可提供详细的硬盘运行参数,包括使用时间、温度、坏道等。

安装smartmontools
大多数Linux发行版默认未安装smartmontools,需手动安装:
- Ubuntu/Debian:
sudo apt update && sudo apt install smartmontools
- CentOS/RHEL/Fedora:
sudo yum install smartmontools # CentOS 7及以下 sudo dnf install smartmontools # Fedora/CentOS 8+
查看硬盘使用时间
smartctl的基本语法为:
sudo smartctl -a /dev/sdX
/dev/sdX是硬盘设备名(如/dev/sda、/dev/nvme0n1等),可通过lsblk或fdisk -l命令查看系统中的硬盘设备。
示例:查看/dev/sda的使用时间
sudo smartctl -a /dev/sda
执行后,输出信息中包含大量SMART属性,重点关注以下两项:
-
Power On Hours(通电时间):
输出示例:9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 8765其中
8765表示硬盘累计通电8765小时(约1年)。 -
Power Cycle Count(通电次数):
输出示例:12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 125其中
125表示硬盘累计通电/断电125次。
补充说明
- 若硬盘未启用SMART,需先启用:
sudo smartctl -s on /dev/sda
- 对于NVMe固态硬盘(设备名如
/dev/nvme0n1),smartctl同样适用,但属性名称可能略有不同(如Power On Hours可能显示为Power-on Time)。
其他辅助方法(部分场景适用)
若smartctl因权限或硬件限制无法使用,可尝试以下命令,但需注意:这些方法可能无法直接获取“通电时间”,需结合其他参数间接推断。
hdparm:获取硬盘识别信息
hdparm主要用于硬盘参数设置,但可通过-I参数查看硬盘的识别信息,部分厂商会在此显示通电时间。
安装hdparm
# Ubuntu/Debian sudo apt install hdparm # CentOS/RHEL sudo yum install hdparm
查看硬盘信息
sudo hdparm -I /dev/sda
在输出中,查找“Power cycle count”或“Power-on hours”字段(部分硬盘支持,
Power cycle count: 125
Power-on hours: 8765
/sys/block/sdX/device/:读取内核设备信息
Linux内核会将硬盘的部分信息暴露到/sys文件系统,可通过读取特定文件获取通电时间(需硬盘和内核支持)。
示例:查看/dev/sda的通电时间
cat /sys/block/sda/device/power_on_hours
若文件存在,会直接输出小时数;若不存在,说明该硬盘或内核版本不支持此功能。
lsblk + udev:间接推断(不推荐)
lsblk主要用于列出块设备信息,无法直接显示使用时间,但可通过结合udev规则或第三方工具(如hddtemp)间接获取,操作复杂且准确性低,此处不再赘述。
注意事项
-
权限问题:
查看硬盘信息通常需要root权限,普通用户执行命令时需加sudo。 -
硬盘兼容性:
- 传统HDD对SMART支持较好,NVMe SSD部分厂商可能未完全实现所有SMART属性。
- 极少数老旧硬盘或杂

