Dell Perc6/i RAID Monitoring Script using MegaCli

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 using it with CentOS 5.2 64 bits without GUI, I'm looking the way to monitor RAID status. I then, found that I can use MegaCLI from LSI to do the task. (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 MegaCli instead.

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[i], name_drive[i], state_drive[i]); }

2. Tested by run the command : ./MegaCli64 -PDList -aALL | awk -f analysis.awk

[root@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 raidstatus in /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 no longer 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/aliases file. Specify root : [email protected] in there. So, that all mail to root will go to [email protected]

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

 

你可能感兴趣的:(linux,centos,OS,F#,bash)