小改wvl自动发送状态报告附带硬盘详细SMART信息
背景:nas我放家里7*24 因为长时间不在家无人值守,我希望nas可以给我汇报状态尤其是磁盘的健康状况wvl可以在webadmin的维护菜单里设置定期发送nas的工作状态,但发现信息量太少太简单了,除去主机常规信息,关运行状态只有寥寥几句,例如:
RAID Array 1 Usage Rate : 40588120 kbytes / 1938180224 kbytes (Usage Rate 2%)
DISK10
DISK20
于是我决定自己来小改一下
找到 /usr/local/bin/sendmail.sh
用vi 或 winSCP或干脆下载弄到PC上用文本编辑工具打开
在855行处添加两行
smartctl -d sat -i -H -A /dev/sda >> $BODY_FILE
smartctl -d sat -i -H -A /dev/sdb >> $BODY_FILE
这两行的意思是把硬盘1(/dev/sda)和硬盘2(/dev/sdb) 进行健康检测、把规格参数以及目前的SMART详细状态添加到邮件末尾。只用了单硬盘的XD可以只添加第一行。
这两行命令位于发送状态报告邮件的函数 FuncRegularReport() 里,插入到放在执行 SendMail之前,如图
*还有一行 #开头的是注释,没用的
然后保存,如果是把sendmail.sh拷贝出来编辑的话,存回去之后记得要把文件的权限恢复为755
也就是在ssh里运行一次
chmod 755 /usr/local/bin/sendmail.sh
我们可以手动执行发送状态报告邮件测试一下效果(需要webadmin已经配置好了发送邮件报告并选中了发送硬盘状态)
之后收到的状态邮件末尾会附带两个硬盘的响应信息类似下面的例子
我们关注其中的几个信息即可,已蓝色加粗和添加了绿色的说明
smartctl version 5.37 Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD2003FYYS-02W0B0 硬盘型号
Serial Number: WD-WMAY00069431 序列号
Firmware Version: 01.01D02
User Capacity: 2,000,398,934,016 bytes
Device is: Not in smartctl database
ATA Version is: 8
ATA Standard is:Exact ATA specification draft version not indicated
Local Time is: Thu Feb 21 14:36:54 2013 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED健康状况PASSED就是好的
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATEDWHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-failAlways - 1
3 Spin_Up_Time 0x0027 253 253 021 Pre-failAlways - 6241
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 11
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-failAlways - 0 已检测到的坏轨数量,只要不是0就得注意了
7 Seek_Error_Rate 0x002e 100 253 000 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 77 通电/运作了多少个小时,新买的硬盘可以留意一下这里
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 11
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 9
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 1
194 Temperature_Celsius 0x0022 102 101 000 Old_age Always - 50硬盘温度
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0
其他SMART属性的含义可以自行搜索一下,不同类型的硬盘会有些差别。
硬盘有价数据无价,祝大家的nas身体健康长命百岁 emm,忘记了说手动执行发送硬盘报告邮件的命令是在ssh下执行
# /etc/cron/cron.d/mailnotice.sh
如果你配置的邮箱信息没有错的话,立刻就会收到
QQ\163\126\等国内免费邮箱的smtp都不支持,好奇怪
用gmail的同学可以参考上面截图的配置
看上去有点复杂,不过自己动手还是很不错的。 {:7_191:}非常好,谢谢了! 手动发邮件,内容还是和以前一样, 于是执行了下smartctl -d sat -i -H -A /dev/sda, 显示# smartctl -d sat -i -H -A /dev/sda
smartctl: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
dea 发表于 2013-2-21 16:37 static/image/common/back.gif
手动发邮件,内容还是和以前一样, 于是执行了下smartctl -d sat -i -H -A /dev/sda, 显示 ...
你的是什么型号什么版本的固件? 谢楼主,试试去 dea 发表于 2013-2-21 16:37 static/image/common/back.gif
手动发邮件,内容还是和以前一样, 于是执行了下smartctl -d sat -i -H -A /dev/sda, 显示 ...
你是装MOD的?被精简了?
我装的是官方的 1.64 不错,试试去。 好使~正常收到右键了~ 很实用,我也准备上wvl了,就是硬盘格式不能ntfs,不方便分享 相当不错 其他版本的固件不能插入到855行。
插入地应该是
SubFuncRegularReportDiskErr
echo "" >> $BODY_FILE
之后。 学习,学习 本帖最后由 dea 于 2013-2-26 13:30 编辑
我的也是WVL 官方1.64, 两块硬盘用的raid0root@NAS:~# /etc/cron/cron.d/mailnotice.sh
Can't specify using language.
use english messages
smartctl: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
smartctl: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
dea 发表于 2013-2-26 13:17 static/image/common/back.gif
我的也是WVL 官方1.64, 两块硬盘用的raid0
直接运行
smartctl -d sat -i -H -A /dev/sda
也这样报错吗?缺少这个东西?
试试
ipkg install libstdc++
你的nas改过其他东西吗?有没有装 opt, tr 之类的? 直接运行也报错:root@NAS:~# smartctl -d sat -i -H -A /dev/sda
smartctl: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
root@NAS:~# ipkg install libstdc++
Package libstdc++ (6.0.9-6) installed in root is up to date.
Nothing to be done
Successfully terminated.
装过opt,tr aria2 dea 发表于 2013-2-26 14:48 static/image/common/back.gif
直接运行也报错:装过opt,tr aria2
Package libstdc++ (6.0.9-6) installed in root is up to date.
这代表已经装了啊?怎么还会 error while loading shared libraries: libstdc++.so.6 呢,奇怪啊..等其他高手来解答吧 文雅的堕落 发表于 2013-2-26 09:32 static/image/common/back.gif
其他版本的固件不能插入到855行。
插入地应该是
SubFuncRegularReportDiskErr
是的,发现不同版本的固件在的行数位置不同,应该以找到那个函数的特定位置为准
按群友指导,终于成功了
方法如下: /usr/lib和 /opt/lib 下 分别备份libstdc++.so.6
mv libstdc++.so.6 libstdc++.so.6.bak
然后
ln -s libstdc++.so.6.0.9 libstdc++.so.6
再 /etc/cron/cron.d/mailnotice.sh
就成功了! 谢谢 A4G!
页:
[1]
2