前一段时间,机房的存储阵列挂掉2个块硬盘,导致数据全部丢失,好在数据不是很重要的,否则损失惨重。今天特地研究了一下如何用脚本来监控阵列的硬盘状态的方法,初步方法如下:

首先,安装IBM subsystem 管理软件SMclient, 这个可以在IBM 官方网站下载到。

其次,配置外部smtp 服务器,或者自己配置一个sendmail 服务器。方法可以在网上找到。这一步是为了

利用mail 向指定邮箱发送报警邮件。

脚本如下:

if [ -f ~/.bash_profile ];

then

  . ~/.bash_profile

fi

NUM_FAILED_Drivers=`SMcli -e 192.168.0.98 -c "show allDrives;"|grep "Status"|grep -v "Optimal"|wc -l`

if [ $NUM_FAILED_Drivers -gt 0 ];then

    echo "the number of failed drivers is $NUM_FAILED_Drivers."|/usr/local/bin/mail \

-s "drivers failed"  ******@qq.com>/dev/nul 2>&1 #把接受报警的邮箱填上。

    echo "drivers failure happen in storage subsystem at $(date +%F).">>"$0".log

fi


最后把这个脚本加入定时任务,

$crontab -e

输入:00 08 * * * sh /root/admin_script/subsystemStatus.sh,保存。

这样每天早上8点,脚本会定时执行,检查硬盘的状态,如果有故障,将会发送报警邮件。


这个只是初步脚本,不够完善。但目前还没有想到更好的方法。