在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