个人工具

UbuntuHelp:Smartmontools/zh

来自Ubuntu中文

Chinakr讨论 | 贡献2007年6月2日 (六) 18:43的版本 安装

跳转至: 导航, 搜索

硬件要求

  • 要求硬盘支持S.M.A.R.T.功能(目前市场上主流的硬盘全部支持S.M.A.R.T)

安装

首先,我们来安装smartmontools软件包。关于如何用新立得包管理器安装smartmontools软件包,请参考UbuntuHelp:SynapticHowto

显示硬盘的所有的SMART信息,运行

sudo smartctl -a /dev/hda

接下来需要编辑几个文件。用你喜欢的文本编辑器打开文件/etc/default/smartmontools,例如vim:sudo vim /etc/default/smartmontools,取消对start_smartd=yes这一行的注释,也就是去掉行首的“#”标记。然后编辑守护进程配置文件。打开文件/etc/smartd.conf。把包含DEVICESCAN的那一行注释掉,也就是在行首加上“#”标记。紧接着在文件结尾加上:

/dev/hda \
-H \
-l error -l selftest \
-s (O/../../5/11|L/../../5/13|C/../../5/15) \
-m ThisIsNotUsed -M exec /usr/local/bin/smartd.sh

需要注意的是,上面所有命令中的/dev/hda都应该改为你想要监控的硬盘的设备名称,例如/dev/hdb。硬盘的设备名称可以通过dmesg | grep hd这个命令来确定。

经过上面的配置,守护进程将会时时刻刻检查硬盘,如果发生任何错误就会执行/usr/local/bin/smartd.sh

现在,我们来创建这个用于关闭电脑的脚本。在/usr/local/bin下新建一个名为smartd.sh的文本文件(可以使用命令sudo vim /usr/local/bin/smartd.sh),把下列内容添加到文件中:

#!/bin/bash
LOGFILE="/var/log/smartd.log"
echo -e "$(date)\n$SMARTD_MESSAGE\n" >> "$LOGFILE"
mail admin[at]alcalleop[dot]net < $LOGFILE
sleep 40s
shutdown -h now

上面的脚本会通过E-mail给admin[at]alcalleop[dot]net发送日志文件,接下来等待40s,然后关闭电脑。通过定制这个脚本,你可以让电脑在发生磁盘错误的情况下执行合适的操作,例如你可能不希望关闭电脑。

现在是启动守护进程的时候了:sudo /etc/init.d/smartmontools start

如果你想测试一下上面的工作是否有效,你可以在-M exec /usr/local/bin/smartd.sh后加上-M test,然后重启守护进程。这个操作会强迫守护进程立即执行脚本。现在,每次电脑启动时,这个脚本都会关闭电脑。因此你不得不用恢复模式启动电脑并把/etc/smartd.conf文件的-M test选项去掉。

基于 Gentoo Wiki: HOWTO Monitor your hard disk(s)withsmartmontools.