IBM SVC Code: einfache listen Ausgabe bei einem >lsvdisk Befehl.

Ich hatte mich geärgert bei der Abfrage von: >lsvdiskcopy im SVC immer nur die vDisk der mDisk Gruppe in dieser Ausgabe zu bekommen:

IBM_2145:SVCSE0100_DS:TEST\V933284ADM>lsvdiskcopy -filtervalue mdisk_grp_name=FIS1_MID_G200_TEST -nohdr
8   SANTE00002_2DC_DISK002 0 online yes yes 5 FIS1_MID_G200_480824 10.00GB  striped yes on active no 5 FIS1_MID_G200_480824 no
9   CLUSTTE01020_2DC_DISK001 0 online yes yes 5 FIS1_MID_G200_480824 2.00GB   striped yes on active no 5 FIS1_MID_G200_480824 no
10  CLUSTTE01020_2DC_DISK002 0 online yes yes 5 FIS1_MID_G200_480824 2.00GB   striped yes on active no 5 FIS1_MID_G200_480824 no
11  ESX_BAD-C1_2DC_DISK001 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
12  ESX_BAD-C1_2DC_DISK002 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
13  ESX_BAD-C1_2DC_DISK003 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
14  ESX_BAD-C1_2DC_DISK004 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
15  ESX_BAD-C1_2DC_DISK005 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
16  ESX_BAD-C1_2DC_DISK007 0 online yes yes 5 FIS1_MID_G200_480824 4.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
17  ESX_BAD-C1_2DC_DISK008 0 online yes yes 5 FIS1_MID_G200_480824 2.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
18  ESX_BAD-C1_2DC_DISK009 0 online yes yes 5 FIS1_MID_G200_480824 1.00TB   striped yes on active no 5 FIS1_MID_G200_480824 no
19  SANTE00002_2DC_DISK010 0 online yes yes 5 FIS1_MID_G200_480824 100.00GB striped yes on active no 5 FIS1_MID_G200_480824 no
20  ESX_BAD-C1_2DC_DISK099 0 online yes yes 5 FIS1_MID_G200_480824 10.00GB  striped yes on active no 5 FIS1_MID_G200_480824 no
27  SQLTE00003_2DC_DISK001 0 online yes yes 5 FIS1_MID_G200_480824 13.60GB  striped yes on active no 5 FIS1_MID_G200_480824 no
28  SQLTE00003_2DC_DISK002 0 online yes yes 5 FIS1_MID_G200_480824 13.60GB  striped yes on active no 5 FIS1_MID_G200_480824 no
Die sind nach ID aufgezeigt und daher taucht z.B. SANTE00002 mal Zeile 1 und Zeile 19 auf… grrrrrr.

Also habe ich nun ein Script gebaut, mit dem man die vDisk Ausgabe in ein Array schreibt, das nun nach
Namen und nicht nach ID sortiert und anschließend die doppelten Einträge löscht,
sowie entfernt die Zeichen ab _DIS* --> _DISK001

Also bei z.B.:
ESX_BAD-C1_2DC_DISK001
ESX_BAD-C1_2DC_DISK002
ESX_BAD-C1_2DC_DISK003

Bleibt nur noch
ESX_BAD-C1_2DC
übrig

Hier die Scripte..

VAR_MDISKGRP="DS8A_BAX80_GRP_SAS_SSD_ENTERPRISE";
vdiskNames=(`svcinfo lsvdiskcopy -filtervalue mdisk_grp_name=$VAR_MDISKGRP -nohdr | while read id name rest; do echo "${name%%_DIS*} "; done`)
vdiskNamesSort=($(echo ${vdiskNames[*]}| tr " " "\n" | sort -u));
for i in ${vdiskNamesSort[@]}; do
echo $i
done

—- Output:
CLUSTPE01410_2DC
CLUSTPE01420_2DC
CLUSTPE01600_2DC
ESX_PE0-C27-BB-TS_1DC
ESX_PLN-C2-SC_2DC
ESX_TE0-C3-BB_1DC
ESX_TE0-C6-SC_2DC
ESX_TE0-C7-BB-TS_1DC

————————–

VAR_MDISKGRP="DS8A_BAT60_GRP_SAS_SSD_ENTERPRISE";
vdiskNames=(`svcinfo lsvdiskcopy -filtervalue mdisk_grp_name=$VAR_MDISKGRP -nohdr | while read id name rest; do echo "${name%%_DIS*} "; done`)
vdiskNamesSort=($(echo ${vdiskNames[*]}| tr " " "\n" | sort -u));
for i in ${vdiskNamesSort[@]}; do
echo $i
done

—- Output:
CLUSTPE01410_2DC
CLUSTPE01420_2DC
CLUSTPE01600_2DC
ESX_PE0-C11-NB_1DC
ESX_PLN-C2-SC_2DC
ESX_TE0-C6-SC_2DC

Schreibe einen Kommentar