http://www.bxtra.net/articles/2008-09-16/Dell-Perc6i-RAID-Monitoring-Script-using-MegaCli-LSI-CentOS-52-64-bits
I got a Dell Perc6/i Integrated RAID card a few days ago. By usingit with CentOS 5.2 64 bits without GUI, I'm looking the way to monitorRAID status. I then, found that I can use MegaCLI from LSI to do thetask. (Dell Perc6/i uses LSI Chip)
First, get MegaCLI from LSI website -> MegaCLI 2.00.11 for Linux
Unzip it, and install it by RPM. Files will place at /opt/MegaRAID/MegaCli. However, since I use 64 bits version, the file I got is MegaCli64. (32 bits OS will get MegaCliinstead.
I, then, followed what said on this website(Most information came from that website.)
1. Created a file called "analysis.awk" in the /opt/MegaRAID/MegaCli directory with the following contents:
# This is a little AWK program that interprets MegaCLI output
/Device Id/ { counter += 1; device[counter] = $3 }
/Firmware state/ { state_drive[counter] = $3 }
/Inquiry/ { name_drive[counter] = $3 " " $4 " " $5 " " $6 }
END {
for (i=1; i<=counter; i+=1) printf ( "Device %02d (%s) status is: %s<br/>\n", device, name_drive, state_drive); }
2. Tested by run the command : ./MegaCli64 -PDList -aALL | awk -f analysis.awk
[iyunv@xxxxx MegaCli]# ./MegaCli64 -PDList -aALL | awk -f analysis.awk
Device 00 (ATA ST3xxxxxxxx Sxxx 5xxxxx) status is: Online
Device 01 (ATA ST3xxxxxxxx Sxxx 5xxxxx) status is: Online
3. Create a file raidstatusin /etc/cron.hourly. Put below script in it :
/opt/MegaRAID/MegaCli/MegaCli64-PdList -aALL | awk -f /opt/MegaRAID/MegaCli/analysis.awk | grep -qEv"*: Online" > /dev/null && echo "Warning: RAID status nolonger optimal"
4. Run below command to make the file executable by all users.
chmod a+x /etc/cron.hourly/raidstatus
5. Check where the e-mail notification goes to in CRONTAB. Check this file -> /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
I didn't change anything in CRONTAB. Instead, I changed that in /etc/aliasesfile. Specify root : aaa@bbb.comin there. So, that all mail to rootwill go to aaa@bbb.com
There is no e-mail notification if you run cron task (run-parts /etc/cron.hourly) by yourself. So, you need to wait for CRON to run automatically and you will get an E-mail. Below are command that maybe useful : Command to list Adapter Information:
/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll
Command to List all Logical Drives:
/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll
Command to list all Physical Information:
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll
To check if cron works, run command:
run-parts /etc/cron.hourly