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
<code>我的博客已迁移到xdoujiang.com请去那边和我交流</code>
<code>1、</code><code>cat</code> <code>megacli.sh </code>
<code>#!/bin/bash</code>
<code>#-------------------------------------------------- </code>
<code>#Created:2015-05-22</code>
<code>#Author:jimmygong</code>
<code>#Mail:[email protected]</code>
<code>#Function:</code>
<code>#Version:1.0</code>
<code>#--------------------------------------------------</code>
<code>function</code> <code>megacliaction ()</code>
<code>{</code>
<code> </code><code>megacmd=</code><code>"/usr/local/sbin/MegaCli64"</code>
<code> </code><code>if</code> <code>[[ -e $megacmd ]]</code>
<code> </code><code>then</code>
<code> </code><code>critical=$(</code><code>sudo</code> <code>$megacmd -AdpAllInfo -aALL -NoLog|</code><code>awk</code> <code>'/Critical Disks/ {print $4}'</code><code>) </code>
<code> </code><code>failed=$(</code><code>sudo</code> <code>$megacmd -AdpAllInfo -aALL -NoLog|</code><code>awk</code> <code>'/Failed Disks/ {print $4}'</code><code>)</code>
<code> </code><code>[[ -z $critical ]] || [[ -z $failed ]] && </code><code>echo</code> <code>"Storage Capture Failure"</code> <code>&& </code><code>exit</code> <code>0 </code>
<code> </code><code>[[ $critical -</code><code>ne</code> <code>0 ]] || [[ $failed -</code><code>ne</code> <code>0 ]] && </code><code>echo</code> <code>"Storage Disk Failure"</code> <code>&& </code><code>exit</code> <code>0 </code>
<code> </code><code>echo</code> <code>"Storage Disk Normal"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"MegaCli64 Problem"</code>
<code> </code><code>exit</code> <code>1</code>
<code> </code><code>fi</code>
<code>}</code>
<code>megacliaction</code>
<code>exit</code> <code>0</code>
<code>2、查看raid信息</code>
<code>cat</code> <code>megacli2.sh</code>
<code>function</code> <code>diskstatus ()</code>
<code>echo</code> <code>-e </code><code>"===============Raid Information==============="</code>
<code>cmd=</code><code>"/usr/local/sbin/MegaCli64"</code>
<code>raid=`$cmd -cfgdsply -aALL|</code><code>grep</code> <code>"RAID Level"</code><code>|</code><code>tail</code> <code>-1|</code><code>awk</code> <code>-F: </code><code>'{print $1" :"$2}'</code><code>`</code>
<code>disknum=`$cmd -cfgdsply -aALL|</code><code>grep</code> <code>"Number Of Drives"</code><code>|</code><code>awk</code> <code>-F: </code><code>'{print $2}'</code><code>`</code>
<code>onlinedisk=`$cmd -cfgdsply -aALL|</code><code>grep</code> <code>-c </code><code>"Online"</code><code>`</code>
<code>faileddisk=`$cmd -AdpAllInfo -aALL -NoLog|</code><code>awk</code> <code>'/Failed Disks/ {print $4}'</code><code>`</code>
<code>criticaldisk=`$cmd -AdpAllInfo -aALL -NoLog|</code><code>awk</code> <code>'/Critical Disks/ {print $4}'</code><code>`</code>
<code>case</code> <code>"$raid"</code> <code>in</code>
<code>"RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0"</code><code>)</code>
<code>echo</code> <code>"Raid Level:1"</code><code>;;</code>
<code>"RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0"</code><code>)</code>
<code>echo</code> <code>"Raid Level:0"</code><code>;;</code>
<code>"RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3"</code><code>)</code>
<code>echo</code> <code>"Raid Level:5"</code><code>;;</code>
<code>"RAID Level : Primary-6, Secondary-0, RAID Level Qualifier-3"</code><code>)</code>
<code>echo</code> <code>"Raid Level:6"</code><code>;;</code>
<code>"RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0"</code><code>)</code>
<code>echo</code> <code>"Raid Level:10"</code><code>;;</code>
<code>esac</code>
<code>echo</code> <code>"Total Diak Number:$disknum"</code>
<code>echo</code> <code>"Online Disk Number:$onlinedisk"</code>
<code>echo</code> <code>"Failed Disk Number:$faileddisk"</code>
<code>echo</code> <code>"Critical Disk Number:$criticaldisk"</code>
<code>echo</code> <code>-e </code><code>"===============Current Status================="</code>
<code>$cmd -PDList -aALL|</code><code>grep</code> <code>"Firmware state"</code>
<code>diskstatus</code>
<code>执行结果:</code>
<code>===============Raid Information===============</code>
<code>Raid Level:5</code>
<code>Total Diak Number:7</code>
<code>Online Disk Number:7</code>
<code>Failed Disk Number:0</code>
<code>Critical Disk Number:0</code>
<code>===============Current Status=================</code>
<code>Firmware state: Online</code>
<code>Firmware state: Hotspare</code>
本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1653705,如需转载请自行联系原作者