特殊:Badtitle/NS100:Smartmontools/zh:修订间差异
第33行: | 第33行: | ||
现在是启动守护进程的时候了:<code>sudo /etc/init.d/smartmontools start</code> | 现在是启动守护进程的时候了:<code>sudo /etc/init.d/smartmontools start</code> | ||
如果你想测试一下上面的工作是否有效,你可以在<code>-M exec /usr/local/bin/smartd.sh</code>后加上<code>-M test</code> | 如果你想测试一下上面的工作是否有效,你可以在<code>-M exec /usr/local/bin/smartd.sh</code>后加上<code>-M test</code>,然后重启守护进程。这个操作会强迫守护进程立即执行脚本。'''现在,每次电脑启动时,这个脚本都会关闭电脑。因此你不得不用恢复模式启动电脑并把<code>/etc/smartd.conf</code>文件的<code>-M test</code>选项去掉。''' | ||
基于 | 基于 |
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.