Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.33 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. while getopts ":Dd:p:" optname
  4. do
  5.     case "$optname" in
  6.  
  7.         "p")
  8.             # echo "Devices in the array"
  9.             MD_dev=$(echo "${OPTARG}"| sed 's/\/dev\///')
  10.  
  11.             dev_count=$(cat /sys/block/$MD_dev/md/raid_disks)
  12.                   echo -e "{\n\t\"data\":["
  13.             for (( count=0; count<dev_count; count++ ))
  14.                 do
  15.                 device_name=$(ls -la /sys/block/$MD_dev/md/rd$count/ | grep "block " | sed 's|.*block/||')
  16.                 if ((count<dev_count-1));
  17.                 then echo -e "\t{ \"{#MDDEV_NAME}\":\t\"${device_name}\" },"
  18.                 else echo -e "\t{ \"{#MDDEV_NAME}\":\t\"${device_name}\" }"
  19.                 fi
  20.                 done
  21.                 echo -e "\t]\n}"
  22.  
  23.  
  24.  
  25.  
  26.             ;;
  27.  
  28.         "d")
  29.             # echo "Devices in the array"
  30.             MD_dev=$(echo "${OPTARG}"| sed 's/\/dev\///')
  31.             dev_count=$(cat /sys/block/$MD_dev/md/raid_disks)
  32.                   echo -e "{\n\t\"data\":["
  33.             for (( count=0; count<dev_count; count++ ))
  34.                 do
  35.                 device_name=$(ls -la /sys/block/$MD_dev/md/rd$count/ | grep "block " | sed 's|.*block/||' | sed -r 's/\/.+//')
  36.                 if ((count<dev_count-1));
  37.                 then echo -e "\t{ \"{#BLK_NAME}\":\t\"${device_name}\" },"
  38.                 else echo -e "\t{ \"{#BLK_NAME}\":\t\"${device_name}\" }"
  39.                 fi
  40.                 done
  41.                 echo -e "\t]\n}"
  42.  
  43.  
  44.  
  45.  
  46.             ;;
  47.         "D")
  48.             # echo "Discovery"
  49.                   echo -e "{\n\t\"data\":["
  50.             typeset -i nbLines
  51.             typeset -i cntLines=0
  52.             nbLines=`cat /proc/mdstat | grep ^md | wc -l`
  53.             cat /proc/mdstat | grep ^md | while read line
  54.             do
  55.                 cntLines=${cntLines}+1
  56.                 MDdev=`echo $line | awk '{print $1}'`
  57.                 if [ ${cntLines} -eq ${nbLines} ]; then
  58.                         echo -e "\t{ \"{#MD_DEVICE}\":\t\"${MDdev}\" }"
  59.                 else
  60.                         echo -e "\t{ \"{#MD_DEVICE}\":\t\"${MDdev}\" },"
  61.                 fi
  62.             done
  63.             echo -e "\t]\n}"
  64.  
  65.             ;;
  66.         "?")
  67.             echo "Unknown option $OPTARG"
  68.             ;;
  69.         *)
  70.             echo "Unknown error while processing options"
  71.             ;;
  72.     esac
  73. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement