什么是 SmartCTL?
每个现代硬盘驱动器都可以选择通过 SMART 属性监控其当前状态和健康状况。 SMART 代表自我监控、分析和报告技术。 可以在您的 HDD 上执行 SMART 测试,以检测硬件本身的任何潜在问题。 诸如此类的测试使用 SmartCTL 运行。 根据 Linux 手册页,SmartCTL 是一个命令行实用程序,旨在执行 SMART 任务。 这些任务的示例包括打印错误日志或启用和禁用自动 SMART 测试。
因此,事不宜迟,让我们深入研究 SmartCTL 命令。
先决条件
首先,让我们检查一下在我们的服务器上运行 SmartCTL 工具及其命令需要什么。
查看表
类别 | 要求、公约或 使用的软件版本 |
操作系统 | CentOS 7 |
用户类型 | 根或用户 w/ sudo 特权 |
软件 | 智能控制 |
任务难度 | 中(基本工作知识 命令行是必需的) |
其他 | 服务器上的 Internet 连接 |
*在本文中,我们使用的是 CentOS7,但安装指南将向您展示如何在 Ubuntu 18.04 上安装 smartctl。
安装
CentOS 7
Smartctl 软件的安装非常简单。 让我们先回顾一下 CentOS 7 的安装。
步骤 1. 安装
yum install smartmontools
将上述命令写入终端,yum 将检查依赖项和可用包。 安装完成后,系统会提示您“可以继续安装吗?” 只需键入“y”并让安装完成。
============================================================================
Package Arch Version Repository Size
============================================================================
Installing:
smartmontools x86_64 1:7.0-2.el7 base 546 k
Installing for dependencies:
mailx x86_64 12.5-19.el7 base 245 k
Transaction Summary
============================================================================
Install 1 Package (+1 Dependent package)
Total download size: 791 k
Installed size: 2.4 M
Is this ok [y/d/N]: y
Installed:
smartmontools.x86_64 1:7.0-2.el7
Dependency Installed:
mailx.x86_64 0:12.5-19.el7
Complete!
步骤 2. 启用 smartctl
现在 smartctl 已安装,让我们启动它并确保它总是在服务器重新启动时启动。 我们可以通过运行以下命令来完成此操作。
systemctl enable smartd
此命令将确保 smartctl 守护程序在每次系统启动时启动并运行。 使用此命令时不会显示任何输出。
systemctl start smartd
此命令将启动 smartctl,并且此命令也不会提供任何输出。 您可以使用“状态”标志而不是启动标志来查看 smartctl 服务是否正在运行。
Ubuntu 18.04
在 Ubuntu 上安装 smartctl 和在 CentOS 上是一样的。 只有一个小细节不同。 我们应该在 Ubuntu 操作系统上运行的第一个命令是这个。
步骤 1. 安装
apt-get install smartmontools
启用 smartctl 的其余过程和用户命令与在 CentOS 上的相同。
现在应该安装 Smartctl。 接下来,让我们看一些 smartctl 派上用场的基本用法示例。
用法
如上所述,smartctl 可以执行各种硬盘测试。 我们可以根据我们的 HDD 类型分析故障驱动器或执行 ATA/SCSI 测试。 一般来说,像这样的测试分为两种类型。 ATA/SCSI 测试和 ATA 指定测试。
ATA/SCSI 测试分为两种测试类型:短测试和长测试。 ATA 指定的测试分为两种类型的测试:传送测试和选择测试。 在运行任何这些测试之前,我们必须确保在我们的 HDD 上启用了 SMART。 这是一个命令,我们可以检查它以确保它已启用。
smartctl -i /dev/vda
请记住,vda 驱动器类型仅用作 example. 那是我在本文中使用的测试服务器上的 HDD 标签。 你的情况很可能会有所不同。 找出硬盘标签的最简单方法是运行 df -h 命令。
上述命令的输出将如下所示。
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1127.19.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: QEMU
Product: Vz HARDDISK0
Revision: 2.5+
Compliance: SPC-3
User Capacity: 42,949,672,960 bytes [42.9 GB]
Logical block size: 512 bytes
LU is thin provisioned, LBPRZ=0
Serial number: e603b97ac34343e582bb
Device type: disk
Local Time is: Tue Oct 6 15:37:02 2020 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
最后两行是最重要的,因为它们告诉您硬盘驱动器是否能够运行 SMART 测试。 当您看到 SMART 支持可用但未启用时,您可以运行此命令来启用它。
smartctl -s on -o on -S on /dev/vda
上面命令的输出将如下所示。
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.
现在我们确定 SMART 在我们的设备上可用并已启用,让我们检查一些 smartctl 命令示例。 我们将回顾如何使用它们及其用途。
示例命令
在我们检查一些常见的 smartctl 命令示例之前,我们想指出一件事。 您可以执行的每个测试都可以在两种模式下运行:后台模式和前台模式。 当您在后台运行它们时,测试的优先级较低,服务器上的所有操作通常都会按预期运行。
如果 HDD 突然变得忙碌并且 I/O 变得异常高,则测试将暂停,直到一切恢复正常。 前台模式不会降低测试的优先级,无论发生什么,测试都会继续运行。 仅当 HDD 未被其他任何设备使用时,才建议使用前台模式。
现在我们清除了它,让我们检查命令。
禁用 smartctl
如果要禁用硬盘驱动器上的 SMART 功能,可以使用:
smartctl -s off /dev/vda
检查驱动器运行状况
要显示硬盘驱动器的整体健康状况,您可以使用这个:
smartctl -H /dev/vda
我们的输出将如下所示:
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1127.19.1.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
验证测试模式
如果您想确保驱动器能够自行运行测试,您可以使用这个:
smartctl -H /dev/vda
运行长/短测试
当您想在 HDD 上运行短期或长期测试时,可以使用以下两个命令:
smartctl –test=short /dev/vda
smartctl –test=long /dev/vda
背景测试
对于在后台运行的任何测试,您可以使用 -t 标志:
smartctl -t short /dev/vda
smartctl -t long /dev/vda
smartctl -t conveyance /dev/vda
smartctl -t select /dev/vda
前台测试
对于前台模式,必须添加“-C”标志。 请记住,只有在硬盘没有被其他任何东西使用时才运行它!
smartctl -t short -C /dev/vda
smartctl -t long -C /dev/vda
smartctl -t conveyance -C /dev/vda
smartctl -t select -C /dev/vda
查看完整结果
让我们检查一下如何查看测试结果。
smartctl -a /dev/vda
这是一个 example 你会得到的输出,只是它的一部分,因为整个输出会很长。
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
查看有限的结果
如果您需要更短的输出来仅显示测试结果,您可以使用此命令。
smartctl -l selftest /dev/vda
当您知道硬盘驱动器的错误并想要显示它们时,请使用此命令。
smartctl -l error /dev/sdb
结论
最后,我们希望本文作为对这个有用实用程序的介绍,并且您将自行探索它。 在本文中,我们介绍了 smartctl 命令的基础知识。 如果需要更多信息,smartctl 手册页可以提供有关此实用程序和所有可用标志的更多信息。 我们可以输入 聪明人 进入我们的终端以打开 smartctl 的手册页。
想要更多信息?
我们以成为 Hosting™ 中最有帮助的人而自豪!
我们经验丰富的托管解决方案顾问随时可以向您展示如何利用这些技术!
我们全年 365 天、每周 7 天、每天 24 小时提供服务,通过我们的票务系统 [email protected]、电话(800-580-4986)或 在线聊天 或您喜欢的任何方法。