天天看點

MegaCli的相關shell腳本

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 ]] &amp;&amp; </code><code>echo</code> <code>"Storage Capture Failure"</code> <code>&amp;&amp; </code><code>exit</code> <code>0 </code>

<code>        </code><code>[[ $critical -</code><code>ne</code> <code>0 ]] || [[ $failed -</code><code>ne</code> <code>0 ]] &amp;&amp; </code><code>echo</code> <code>"Storage Disk Failure"</code> <code>&amp;&amp; </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,如需轉載請自行聯系原作者