特殊:Badtitle/NS100:Smartmontools/zh:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Chinakr留言 | 贡献
Chinakr留言 | 贡献
 
第1行: 第1行:
=== 硬件要求 ===
=== 硬件要求 ===
* 要求硬盘支持S.M.A.R.T.功能(目前市场上主流的硬盘全部支持S.M.A.R.T)
* 要求硬盘支持S.M.A.R.T.功能(1. 目前市场上主流的硬盘全部支持S.M.A.R.T.。2. 可以通过<code>sudo smartctl -i /dev/hda</code>来查询硬盘是否支持S.M.A.R.T.。)


=== 安装 ===
=== 安装 ===

2007年6月2日 (六) 18:45的最新版本

硬件要求

  • 要求硬盘支持S.M.A.R.T.功能(1. 目前市场上主流的硬盘全部支持S.M.A.R.T.。2. 可以通过sudo smartctl -i /dev/hda来查询硬盘是否支持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.