在Debian上使用Smartctl,Smartd和Hddtemp

时间:2020-03-21 11:47:29  来源:igfitidea点击:

设置smartmontools和hddtemp来分析和监视存储设备。

什么是SMART?

自我监视,分析和报告技术(S.M.A.R.T.)是许多现代存储设备中的补充组件,设备可以通过这些设备监视,存储和分析其运行状况。

在Debian上安装

# apt-get update && apt-get install smartmontools hddtemp

smartctl的基本用法

Smartctl是一个命令行实用程序,旨在执行SMART任务,例如打印SMART自检和错误日志,启用和禁用SMART自动测试以及启动设备自检。

扫描设备

# smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device

扫描并尝试打开设备

# smartctl --scan-open
/dev/sda -d sat # /dev/sda [SAT], ATA device
/dev/sdb -d sat # /dev/sdb [SAT], ATA device

检查对设备的SMART支持

# smartctl -i /dev/sda | grep support
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

显示设备的身份信息

# smartctl -i /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-4-amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Scorpio Blue Serial ATA
Device Model:     WDC WD3200BEVT-75ZCT1
Serial Number:    WD-WXE608NN5731
LU WWN Device Id: 5 0014ee 2ac77d26d
Firmware Version: 11.01A11
User Capacity:    320,072,933,376 bytes [320 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Tue Apr 29 22:18:03 2014 BST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
# smartctl -i /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-4-amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family:     SandForce Driven SSDs
Device Model:     OCZ-VERTEX2
Serial Number:    OCZ-SACTRPJY59L43FH3
LU WWN Device Id: 5 e83a97 f02ec6a4d
Firmware Version: 1.37
User Capacity:    50,020,540,416 bytes [50.0 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 6
Local Time is:    Tue Apr 29 22:18:04 2014 BST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

显示SMART功能

# smartctl -c /dev/sda

显示SMART健康状况

# smartctl -H /dev/sda

执行简短测试

在'/dev/sda'上运行一个简短的测试(通常需要几分钟):

# smartctl -t short /dev/sda

显示设备的自检日志

# smartctl -l selftest /dev/sda

显示设备的错误日志

# smartctl -l error /dev/sda

获取设备温度

# smartctl -a /dev/sda | grep Temp | cut -d" " -f 2,37
Temperature_Celsius 42
# smartctl -a /dev/sdb | grep Temp | cut -d" " -f 2,37
Temperature_Celsius 30

配置SMART磁盘监视后台程序

首先备份默认的“/etc/default/smartmontools”配置文件:

# cp /etc/default/smartmontools /etc/default/smartmontools.backup

在系统启动时启动smartd:

# echo "start_smartd=yes" > /etc/default/smartmontools

同时备份默认的“ /etc/smartd.conf”配置文件:

# cp /etc/smartd.conf /etc/smartd.conf.backup

创建一个脚本,以在检测到任何磁盘问题时执行:

# touch /root/script.sh

打开文件并添加以下行:

#!/bin/bash
# Save the email message (STDIN) to a file:
cat > /root/smartdmsd
# Append the output of smartctl -a to the message:
/usr/sbin/smartctl -a -d $SMART_DEVICETYPE $SMARTD_DEVICE >> /root/smartdmsg

# Now email the message to the user at address ADD:
/usr/bin/mail -s "$SMARTD_SUBJECT" $SMARTD_ADDRESS < /root/smartdmsg

确保定义的路径正确。
如果不确定,请仔细检查:

# which smartctl mail
/usr/sbin/smartctl
/usr/bin/mail

使脚本文件可执行:

# chmod 0755 /root/script.sh

将smartd配置文件设置为空:

# >/etc/smartd.conf

现在将以下行添加到'/etc/smartd.conf'中:

/dev/sda -a -d sat -o on -S on -s (S/../.././19) -m root -M exec /root/script.sh
/dev/sdb -a -d sat -o on -S on -s (S/../.././19) -m root -M exec /root/script.sh

这两行设置了对“/dev/sda”和“/dev/sdb”磁盘的监视。

  • -a:开启-H,-f,-t,-l自检,-l错误,-C 197和-U 198.
  • -d sat:设备类型是SCSI到ATA转换(SAT)。
  • -o on:在smartd启动时启用SMART自动脱机测试。
  • -S on:在smartd启动时启用属性自动保存。
  • -s(S /../.././19):每天晚上7点至晚上8点之间运行简短自检(S)。
  • -m root:向root发送警告电子邮件。
  • -M exec /root/script.sh:当smartd需要发送电子邮件时,运行可执行文件'/root/script.sh'而不是默认的mail命令。

我们的根电子邮件地址设置在'/etc/aliases'下。
建议先使用“ -M测试”,在智能启动后立即发送一封测试电子邮件,以便验证电子邮件是否正确传递。

重新启动smartmontools守护程序:

# /etc/init.d/smartmontools restart
[ ok ] Restarting S.M.A.R.T. daemon: smartd.

要进行故障排除,请检查syslog:

# tail -f /var/log/syslog

使用hddtemp监视硬盘驱动器温度

hddtemp实用程序可以通过读取S.M.A.R.T.来监视硬盘驱动器温度。
有关支持此功能的驱动器的信息。

# hddtemp /dev/sda /dev/sdb
/dev/sda: WDC WD3200BEVT-75ZCT1: 41°C
/dev/sdb: OCZ-VERTEX2: 30°C