背景:
由于Megacli以及hpacucli工具查看raid、硬盘信息时不方便查看,特编写shell脚本格式处理,方便管理。
showdisk.sh
1 #!/bin/bash 2 ## useage: check raid info 3 ## Check HP or DELL and Other Server 4 5 grep -qi '=hp' /etc/xxxinstall.conf #内部标记 6 if (($?==0));then 7 SLOT=`sudo hpacucli ctrl all show status|grep Slot|awk '{print $6}'` 8 hpacucli controller slot=$SLOT show status 9 echo "HP Raid Level Info:" 10 hpacucli controller slot=$SLOT ld all show | awk '{ if ($0 ~ /array/) printf "array "$NF ":"; if($0 ~ /logicaldrive/) print $0}' 11 echo '===================================================' 12 hpacucli controller slot=$SLOT pd all show | awk '{ if ($0 ~ /array/) printf "array "$NF ": "; if($0 ~ /physicaldrive/) print $0}' 13 else 14 Megacli='/opt/MegaRAID/MegaCli/MegaCli64' 15 $Megacli -PDList -aALL -NoLog | awk -F":" '{if($1 ~/^Slot/) printf("%s:%2s ",$1,$2)} ; 16 {if ( $1 ~ /^Media Error/ ) printf("%s:%5s ",$1,$2)}; 17 {if ( $1 ~ /^Other Error Count/) printf("%s:%5s ",$1,$2)}; 18 {if ( $1 ~ /^Predictive/) printf("%s:%5s ",$1,$2)}; 19 {if ( $1 ~ /^Firmware state/) printf("%s:%5s ",$1,$2)}' 20 echo -e " " 21 $Megacli -FwTermLog -Dsply -aALL -NoLog | egrep "CopyBack progress|Rebuild progress" | awk -F"=" '{print $NF}' | tail -1 22 $Megacli -LdPdInfo -aALL -Nolog |awk 'BEGIN{print "========================================"}{if($0 ~ /^Virtual Drive:/) print $0}; 23 {if($0 ~ /^RAID Level/) print " "$1,$2,$3,$4,$5}; 24 {if($0 ~ /^Size/) print " Size: "$3,$4}; 25 {if($0 ~ /^Parity/) print " Parity Size: "$4,$5}; 26 {if($0 ~ /^Current Cache/) print " Policy: "$4}; 27 {if($0 ~ /^Enclosure Device ID/) printf(" EnID:%s",$4)}; 28 {if($0 ~ /^Slot/) printf(" %s",$0)}; 29 {if($0 ~ /^Inquiry Data/) printf(" %s ",$0)};END{print "========================================"}' 30 fi
使用案例:
1 [root@master1 ~]# curl -s ftp://10.73.11.200/showdisk.sh|bash 2 Slot Number: 0 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 3 Slot Number: 1 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 4 Slot Number: 2 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 5 Slot Number: 3 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 6 ======================================== 7 Virtual Drive: 0 (Target Id: 0) 8 RAID Level : Primary-5, Secondary-0, #raid5 9 Size: 836.625 GB 10 Parity Size: 278.875 GB 11 Policy: WriteThrough, 12 EnID:32 Slot Number: 0 Inquiry Data: SEAGATE ST9300605SS CS056XP165XQ 13 EnID:32 Slot Number: 1 Inquiry Data: SEAGATE ST9300605SS CS056XP16S0A 14 EnID:32 Slot Number: 2 Inquiry Data: SEAGATE ST9300605SS CS056XP16S4L 15 EnID:32 Slot Number: 3 Inquiry Data: SEAGATE ST9300605SS CS056XP16VJT 16 ========================================
1 [root@h011152 ~]# curl -s ftp://10.73.11.200/showdisk.sh|bash 2 Slot Number: 0 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 3 Slot Number: 1 Media Error Count: 6 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 4 Slot Number: 2 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 5 Slot Number: 3 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 6 Slot Number: 4 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 7 Slot Number: 5 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 8 Slot Number: 6 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 9 Slot Number: 7 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 10 Slot Number: 8 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 11 Slot Number: 9 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 12 Slot Number: 10 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 13 Slot Number: 11 Media Error Count: 0 Other Error Count: 0 Predictive Failure Count: 0 Firmware state: Online, Spun Up 14 Rebuild progress on PD 02(e0x20/s2) is 99.94%(37400s) 15 ======================================== 16 Virtual Drive: 0 (Target Id: 0) 17 RAID Level : Primary-1, Secondary-0, #raid10 18 Size: 1.361 TB 19 Policy: WriteBack, 20 EnID:32 Slot Number: 0 Inquiry Data: SEAGATE ST3300657SS ES646SJ1L4WD 21 EnID:32 Slot Number: 1 Inquiry Data: SEAGATE ST3300657SS ES646SJ0R3BP 22 EnID:32 Slot Number: 2 Inquiry Data: SEAGATE ST3300657SS 000B6SJ8JRVM 23 EnID:32 Slot Number: 3 Inquiry Data: SEAGATE ST3300657SS ES646SJ0RYX4 24 EnID:32 Slot Number: 4 Inquiry Data: SEAGATE ST3300657SS ES646SJ1L4A9 25 EnID:32 Slot Number: 5 Inquiry Data: SEAGATE ST3300657SS ES646SJ0TFTT 26 EnID:32 Slot Number: 6 Inquiry Data: SEAGATE ST3300657SS ES646SJ1L36W 27 EnID:32 Slot Number: 7 Inquiry Data: SEAGATE ST3300657SS ES646SJ1K3C5 28 EnID:32 Slot Number: 8 Inquiry Data: SEAGATE ST3300657SS ES646SJ1KFYK 29 EnID:32 Slot Number: 9 Inquiry Data: SEAGATE ST3300657SS ES646SJ0W431 30 Virtual Drive: 1 (Target Id: 1) 31 RAID Level : Primary-1, Secondary-0, 32 Size: 148.5 GB 33 Policy: WriteBack, 34 EnID:32 Slot Number: 10 Inquiry Data: CVPR114205T3160DGN INTEL SSDSA2CW160G3 4PC10302 35 EnID:32 Slot Number: 11 Inquiry Data: CVPO108200B1160AGN INTEL SSDSA2M160G2GC 2CV102M3 36 ========================================
1 [root@test1 ~]# curl -s ftp://10.73.11.200/showdisk.sh|bash ##HP server 2 Smart Array P410i in Slot 0 (Embedded) 3 Controller Status: OK 4 Cache Status: OK 5 Battery/Capacitor Status: OK 6 HP Raid Level Info: 7 array A: logicaldrive 1 (136.7 GB, RAID 1, OK) 8 =================================================== 9 array A: 10 physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 146 GB, OK) 11 physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK)