info 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. IQN=$1
  3. PrintIQN() {
  4. IQN=$1
  5. IQNTEST=$(grep -h ${IQN} /sys/class/iscsi_session/*/targetname)
  6. if [ "${IQNTEST}" != "${IQN}" ]; then
  7. echo "IQN not found"
  8. echo ""
  9. exit
  10. fi
  11. SESSIONFOLDER=$(grep -l ${IQN} /sys/class/iscsi_session/*/targetname | xargs realpath)
  12. SESSION=$(echo "${SESSIONFOLDER}" | sed 's/.*session\([0-9]*\).*/\1/g')
  13. HOST=$(echo "${SESSIONFOLDER}" | sed 's/.*host\([0-9]*\).*/\1/g')
  14. SCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed 's/\(.*\)\/iscsi_session.*/\1/g' | xargs ls -1 | grep "target${HOST}" | sed 's/target//g')
  15. MAJOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 2)
  16. MINOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 3)
  17. FULLSCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}/g" | xargs ls -1 | grep ":")
  18. LUN=$(echo "${FULLSCSIADDRESS}" | cut -d ":" -f 4)
  19. BLOCKDEVICE=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}\/${FULLSCSIADDRESS}\/block/g" | xargs ls -1 | xargs printf "/dev/%s")
  20. MOUNTPOINT=$(grep "${BLOCKDEVICE}" /proc/mounts | head -n 1 | cut -d " " -f 2)
  21. echo "IQN: ${IQN}"
  22. #echo " Session: ${SESSION}";
  23. #echo " Host: ${HOST}";
  24. #echo " Channel: ${MAJOR}";
  25. #echo " Id: ${MINOR}";
  26. #echo " LUN: ${LUN}";
  27. echo " Address: [${SESSION}] scsi$HOST:${MAJOR}:${MINOR}:${LUN}"
  28. echo " Device: ${BLOCKDEVICE}";
  29. echo " Mountpoint: ${MOUNTPOINT}";
  30. echo
  31. }
  32. if [[ -z "${IQN}" ]]; then
  33. IQNLIST=$(cat /sys/class/iscsi_session/*/targetname)
  34. for IQN in ${IQNLIST}; do
  35. PrintIQN ${IQN}
  36. done;
  37. else
  38. PrintIQN ${IQN}
  39. fi