环境
操作系统: ubuntu 20.04
Megacli: 8.04.07-1
下载链接
邮件发送准备
安装heirloom-mailx
1)apt install heirloom-mailx -y
如果不能安装则在source.list添加:
deb http://cz.archive.ubuntu.com/ubuntu xenial main universe
2)获取邮件发送服务器的smtp信息以及密码(不是登录密码)
3)修改mail的配置
vim /etc/s-nail.rc
set from="duskxxxx@163.com"
set smtp="smtp.163.com"
set smtp-auth-user="duskxxxx@163.com"
set smtp-auth-password="xxxxx"
set smtp-auth=login
4)测试邮件发送
##这两种方式都行
echo "hello" | heirloom-mailx -s "邮件主题" -t recive-mail
echo "hello" | s-nail -s "邮件主题" -t recive-mail
安装megacli
megacli只有rpm包,所以需要在ubuntu上将rpm转为deb包;
获取安装文件
官网下载安装包解压后如下图文件:
此处我是已经转换过后的,所有有deb文件。
将
MegaCli-8.04.07-1.noarch.rpm
转为deb文件
alien -k --scripts MegaCli-8.04.07-1.noarch.rpm
安装
dpkg -i megacli_8.04.07-1_all.deb
#安装文件在:/opt/MegaRAID/MegaCli下
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/local/bin/megacli
到此就安装完成,如果在使用过程中缺失库文件,可以去centos下找到,然后放在/usr/lib/x86_64-linux-gnu下,也可以使用apt-file去安装。
如果有一下提示,可以不用管:
root@localhost:~/MegaCli# megacli -v
OSSpecificInitialize: Failed to load libsysfs.so.2.0.2 Please ensure that libsfs is present in the system.
The dependent library libsysfs.so.2.0.1 not available. Please contact LSI for distribution of the package
MegaCLI SAS RAID Management Tool Ver 8.04.07 May 28, 2012
(c)Copyright 2011, LSI Corporation, All Rights Reserved.
Exit Code: 0x00
编写脚本实现功能
#! /bin/bash
##############################
#Function:check status of disk
#Exec_date:10M
##############################
#Get status of disk
result_file=/root/MegaCli/result_file.txt
#判断结果文件是否是空文件,不是空文件则清空
if [ -s "${result_file}" ]
then
> ${result_file}
fi
slot_count=`megacli -PDList -aALL | grep 'Slot Number' | wc -l`
slot_number=0
host_IP=`ifconfig bond0 | grep -E "inet.*broadcast" | awk '{print $2}'`
statu="Active"
health_num=0
echo "----------${host_IP}-----------" >> ${result_file}
while (($slot_number < $slot_count))
do
disk_status=`megacli -pdinfo -PhysDrv[32:$slot_number] -aALL | grep 'Port status' | awk -F: '{print $2}'`
size=`megacli -pdinfo -PhysDrv[32:$slot_number] -aALL | grep "Raw Size" | awk '{print $3" "$4}'`
WWN=`megacli -pdinfo -PhysDrv[32:$slot_number] -aALL | grep "WWN"`
echo "slot_number: $slot_number" >> ${result_file}
echo "Status: ${disk_status}" >> ${result_file}
echo "Size: ${size}" >> ${result_file}
echo "${WWN}" >> ${result_file}
if [ $disk_status = $statu ]
then
health_num=$[$health_num+1]
fi
slot_number=$((slot_number+1))
# echo ">>>>>>" >> ${result_file}
done
if [ $health_num -eq 4 ]
then
#此处不能使用-t 不然result_file文件内容无法作为message发送到邮件。
heirloom-mailx -s "磁盘健康,大吉大利" 982***604@qq.com < ${result_file}
else
heirloom-mailx -s "警报!!磁盘警报!!!" 98***604@qq.com < ${result_file}
fi
完结撒花!
版权声明:本文为xyw19991006原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。