且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MegaCli的相关shell脚本

更新时间:2022-10-01 14:16:47

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
我的博客已迁移到xdoujiang.com请去那边和我交流
1、cat megacli.sh 
#!/bin/bash
#--------------------------------------------------  
#Created:2015-05-22
#Author:jimmygong
#Mail:jimmygong@taomee.com
#Function:
#Version:1.0
#--------------------------------------------------
function megacliaction ()
{
    megacmd="/usr/local/sbin/MegaCli64"
    if [[ -e $megacmd ]]
    then
        critical=$(sudo $megacmd -AdpAllInfo -aALL -NoLog|awk '/Critical Disks/ {print $4}'
        failed=$(sudo $megacmd -AdpAllInfo -aALL -NoLog|awk '/Failed Disks/ {print $4}')
        [[ -z $critical ]] || [[ -z $failed ]] && echo "Storage Capture Failure" && exit 
        [[ $critical -ne 0 ]] || [[ $failed -ne 0 ]] && echo "Storage Disk Failure" && exit 
        echo "Storage Disk Normal"
    else
        echo "MegaCli64 Problem"
        exit 1
    fi
}
 
megacliaction
exit 0
 
2、查看raid信息
cat megacli2.sh
#!/bin/bash
#--------------------------------------------------  
#Created:2015-05-22
#Author:jimmygong
#Mail:jimmygong@taomee.com
#Function:
#Version:1.0
#--------------------------------------------------
function diskstatus ()
{
echo -e "===============Raid Information==============="
cmd="/usr/local/sbin/MegaCli64"
raid=`$cmd -cfgdsply -aALL|grep "RAID Level"|tail -1|awk -F: '{print $1"        :"$2}'`
disknum=`$cmd -cfgdsply -aALL|grep "Number Of Drives"|awk -F: '{print $2}'`
onlinedisk=`$cmd -cfgdsply -aALL|grep -c "Online"`
faileddisk=`$cmd -AdpAllInfo -aALL -NoLog|awk '/Failed Disks/ {print $4}'`
criticaldisk=`$cmd -AdpAllInfo -aALL -NoLog|awk '/Critical Disks/ {print $4}'`
case "$raid" in
"RAID Level        : Primary-1, Secondary-0, RAID Level Qualifier-0")
echo "Raid Level:1";;
"RAID Level        : Primary-0, Secondary-0, RAID Level Qualifier-0")
echo "Raid Level:0";;
"RAID Level        : Primary-5, Secondary-0, RAID Level Qualifier-3")
echo "Raid Level:5";;
"RAID Level        : Primary-6, Secondary-0, RAID Level Qualifier-3")
echo "Raid Level:6";;
"RAID Level        : Primary-1, Secondary-3, RAID Level Qualifier-0")
echo "Raid Level:10";;
esac
echo "Total Diak Number:$disknum"
echo "Online Disk Number:$onlinedisk"
echo "Failed Disk Number:$faileddisk"
echo "Critical Disk Number:$criticaldisk"
echo -e "===============Current Status================="
$cmd -PDList -aALL|grep "Firmware state"
}
 
diskstatus
exit 0
 
执行结果:
===============Raid Information===============
Raid Level:5
Total Diak Number:7
Online Disk Number:7
Failed Disk Number:0
Critical Disk Number:0
===============Current Status=================
Firmware state: Online
Firmware state: Online
Firmware state: Online
Firmware state: Online
Firmware state: Online
Firmware state: Online
Firmware state: Online
Firmware state: Hotspare









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1653705,如需转载请自行联系原作者