Advertisement
Guest User

Untitled

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