mac使用久了,我想查看磁盘的写入量和寿命,记录一下查看方法。
系统环境: macOS 14.4.1
电脑配置:MacBook Pro 16英寸 M1 Pro
我们要借助Homebrew安装一个叫"smartmontools"的软件,如果你已安装Homebrew请跳过此步骤。
打开终端或者iterm输入以下命令,按照提示安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install smartmontools
smartctl -a disk0 | awk '/SMART\/Health Information/,/^$/'
命令解释:
smartctl: 运行 smartctl 工具的命令。
-a: smartctl 命令的一个参数,指示它显示硬盘的所有可用 S.M.A.R.T. 属性和信息。即,显示硬盘的详细健康状态报告。
disk0: 目标硬盘的标识符。在这个命令中,"disk0" 是硬盘的名称或标识符,可以是系统中硬盘的设备名称或其他标识符,具体取决于操作系统和硬件配置。
|: 这是管道符号,将 smartctl -a disk0
的输出传递给下一个命令。
awk: 这是一个用于处理文本数据的强大工具。在这个命令中,我们使用 awk
来处理 smartctl
的输出。
'/SMART/Health Information/,/^$/': 这是 awk
命令的模式和动作部分。模式部分由两个正则表达式构成,它们用逗号分隔。第一个正则表达式 /SMART\/Health Information/
是起始模式,用于匹配包含 "SMART/Health Information" 的行。第二个正则表达式 /^$/
是结束模式,用于匹配空行。
动作部分: 在模式匹配时执行的动作。在这个命令中,awk
将会从匹配到的起始模式开始打印输出,并在遇到结束模式(空行)时停止打印。
如何确认当前系统挂载的分区或启动的磁盘标志符?
打开终端运行下面的命令:
diskutil list | grep \* -m 1
如下图所示,最后的disk0即为启动磁盘标志符
如果你要查看别的磁盘,请运行下面的命令查找磁盘标志符(输出结果最后一列IDENTIFIER)
diskutil list
运行上面的命令后,会得到以下输出,其中的Percentage Used(磁盘使用百分比)和Data Units Written(磁盘写入量)就是我们要关注的值:
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00 #严重警告。此处值为 0x00,表示没有严重警告。
Temperature: 33 Celsius #温度。当前温度为 33 摄氏度
Available Spare: 100% #可用备用空间。当前可用备用空间为 100%。
Available Spare Threshold: 99% #可用备用空间阈值。当前可用备用空间阈值为 99%。当可用备用空间低于此阈值时,可能会出现警告。
Percentage Used: 2% #使用百分比。当前使用了 2% 的存储器容量
Data Units Read: 91,207,805 [46.6 TB] #读取的数据单元数量。当前已读取 91,207,805 个数据单元,相当于 46.6 TB 的数据量。
Data Units Written: 95,333,096 [48.8 TB] #写入的数据单元数量。当前已写入 95,333,096 个数据单元,相当于 48.8 TB 的数据量。
Host Read Commands: 2,236,552,092 #主机读命令数量。当前已执行 2,236,552,092 条主机读命令。
Host Write Commands: 1,626,904,490 #主机写命令数量。当前已执行 1,626,904,490 条主机写命令。
Controller Busy Time: 0 #控制器忙碌时间
Power Cycles: 349 #电源循环次数。当前已进行了 349 次电源循环。
Power On Hours: 1,237 #上电时间。当前已经上电运行了 1,237 小时。
Unsafe Shutdowns: 10 #不安全的关闭次数。当前发生了 10 次不安全的关闭。
Media and Data Integrity Errors: 0 #媒体和数据完整性错误。当前没有发生媒体和数据完整性错误。
Error Information Log Entries: 0 #媒体和数据完整性错误。当前没有发生媒体和数据完整性错误。
Smartmontools 是一组用于监控存储设备健康状态的开源软件。它主要用于监控和分析支持 S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)的存储设备,比如硬盘和固态硬盘(SSD)。S.M.A.R.T. 是一种由硬盘制造商提供的技术,用于检测硬盘的健康状况,并提前警告用户可能的硬盘故障
Smartmontools 软件包括两个主要工具:
smartctl: 这是一个命令行工具,用于读取和解释存储设备的 S.M.A.R.T. 数据。它可以提供硬盘的各种参数,如温度、错误率、剩余寿命等。通过 smartctl,用户可以定期检查硬盘的健康状态,及时发现潜在的故障。
smrtctl的参数:
smartd: 这是一个守护进程,用于在后台运行并监视存储设备的健康状况。它可以配置成在检测到硬盘问题时发送警报邮件或执行其他操作,以便及时采取措施。
smartd的参数:
-d, --debug: 开启调试模式,输出更详细的调试信息。
-i n, --interval=n: 指定监测硬盘的时间间隔(以分钟为单位)。
-l facility, --logfacility=facility: 指定日志记录的设施。
-n, --nocheck: 不进行初始的 S.M.A.R.T. 检查。
-p, --pidfile=file: 指定 pid 文件的路径,用于记录 smartd 进程的 PID。
-s (l|w|r|n|a) [ , [l|w|r|n|a]]: 指定硬盘状态发生改变时的警报方式。l 表示日志记录,w 表示发送警报邮件,r 表示重新启动系统,n 表示无动作,a 表示执行所有操作。
-t, --test: 在启动时进行一次 S.M.A.R.T. 检查,然后退出。
-M exec command, --exec=command: 指定在硬盘状态改变时执行的命令。
-R, --nocheck=errorsonly: 以错误模式运行,只检查关键错误。
-u, --shutdown: 在硬盘状态改变时关闭系统。
Smartmontools 可以在多种操作系统上运行,包括 Linux、FreeBSD、Windows 等,并且支持各种硬盘接口,如 SATA、IDE、SCSI 等。它是一个非常有用的工具,可以帮助用户及时了解硬盘的健康状况,以预防数据丢失和硬盘损坏。