Files
iSCSI-Scripts/info
T
2023-05-11 15:44:13 +02:00

51 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
IQN=$1
PrintIQN() {
IQN=$1
IQNTEST=$(grep -h ${IQN} /sys/class/iscsi_session/*/targetname)
if [ "${IQNTEST}" != "${IQN}" ]; then
echo "IQN not found"
echo ""
exit
fi
SESSIONFOLDER=$(grep -l ${IQN} /sys/class/iscsi_session/*/targetname | xargs realpath)
SESSION=$(echo "${SESSIONFOLDER}" | sed 's/.*session\([0-9]*\).*/\1/g')
HOST=$(echo "${SESSIONFOLDER}" | sed 's/.*host\([0-9]*\).*/\1/g')
SCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed 's/\(.*\)\/iscsi_session.*/\1/g' | xargs ls -1 | grep "target${HOST}" | sed 's/target//g')
MAJOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 2)
MINOR=$(echo "${SCSIADDRESS}" | cut -d ":" -f 3)
FULLSCSIADDRESS=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}/g" | xargs ls -1 | grep ":")
LUN=$(echo "${FULLSCSIADDRESS}" | cut -d ":" -f 4)
BLOCKDEVICE=$(echo "${SESSIONFOLDER}" | sed "s/\(.*\)\/iscsi_session.*/\1\/target${SCSIADDRESS}\/${FULLSCSIADDRESS}\/block/g" | xargs ls -1 | xargs printf "/dev/%s")
MOUNTPOINT=$(grep "${BLOCKDEVICE}" /proc/mounts | head -n 1 | cut -d " " -f 2)
echo "IQN: ${IQN}"
#echo " Session: ${SESSION}";
#echo " Host: ${HOST}";
#echo " Channel: ${MAJOR}";
#echo " Id: ${MINOR}";
#echo " LUN: ${LUN}";
echo " Address: [${SESSION}] scsi$HOST:${MAJOR}:${MINOR}:${LUN}"
echo " Device: ${BLOCKDEVICE}";
echo " Mountpoint: ${MOUNTPOINT}";
echo
}
if [[ -z "${IQN}" ]]; then
IQNLIST=$(cat /sys/class/iscsi_session/*/targetname)
for IQN in ${IQNLIST}; do
PrintIQN ${IQN}
done;
else
PrintIQN ${IQN}
fi