“Holly Better Viewing, DBAtman!”
So you liked the previous script posted here? Nice, because looking further on the subject I found this pretty similar post, by Mohammad Nazmul Huda.
The additional script there is actually not working in my server, but the idea is great. So, I did just some small adjustments and it’s working pretty fine now:
# asm_report.sh (Adjusted by DBAtman):
printf "\n%-15s %-14s %-11s %-7s\n" "ASM disk" "based on" "Minor,Major" "Size (MB)" printf "%-15s %-14s %-11s %-7s\n" "===============" "=============" "===========" "=========" export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome1 for i in `/usr/sbin/oracleasm listdisks` do v_asmdisk=`/usr/sbin/oracleasm querydisk -d $i | awk '{print $2}'| sed 's/\"//g'` v_minor=`/usr/sbin/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $1}'` v_major=`/usr/sbin/oracleasm querydisk -d $i | awk -F[ '{print $2}'| awk -F] '{print $1}' | awk -F, '{print $2}'` v_device=`ls -la /dev | awk -v v_minor="$v_minor," -v v_major=$v_major '{if ( $5==v_minor ) { if ( $6==v_major ) { print $10}}}'` v_size_bt=`blockdev --getsize64 /dev/${v_device}` v_size=`expr $v_size_bt / 1024 / 1024` Total_size=`expr $Total_size + $v_size` Formated_size=`echo $v_size | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'` printf "%-15s %-14s %-11s %-7s\n" $v_asmdisk "/dev/$v_device" "[$v_minor $v_major]" $Formated_size done Formated_Total_size=`echo $Total_size | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'` printf "\nTotal (MB): %43s\n\n" $Formated_Total_size Ok, and how it works?
[root@greporasrv ~]# sh asm_report.sh ASM disk based on Minor,Major Size (MB) =============== ============= =========== ========= DATA01 /dev/sdg1 [8 97] 255,999 DATA02 /dev/sdh1 [8 113] 255,999 DATA03 /dev/sdi1 [8 129] 255,999 DATA04 /dev/sdj1 [8 145] 255,999 FRA01 /dev/sdk1 [8 161] 307,199 Total (MB): 1,331,195
Even better, right?
Na, na, na, na, na, na, na, na, na, na, na, na… <strong>DBAtman</strong>!