前一段时间,机房的存储阵列挂掉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点,脚本会定时执行,检查硬盘的状态,如果有故障,将会发送报警邮件。
这个只是初步脚本,不够完善。但目前还没有想到更好的方法。