linux下iscsi連接腳本

客戶端通過iscsi連接服務器首先要保證客戶端上安裝了iscsi-initiator-utils,可以根據客戶端的內核版本找對應的iscsi-initiator版本,安裝好之後通過以下腳本(iscsi)操作如下命令:./iscsi start xxx.xxx.xxx.xxx(服務器ip)就可以連接服務器了。

#!/bin/bash

ipAddr=$2
DRIVERDIR=/lib/modules/$(uname -r)/kernel/drivers/scsi
OP=$1
if  [ -z $ipAddr ]
then
  echo "ip is null"
        echo $"Usage:$0 {iscsi start|stop IPADDRESS}"
        exit 1
fi

libiscsi=libiscsi/$(lsmod | grep '^libiscsi' | awk '{print $1}')
iscsi_tcp=iscsi_tcp/$(lsmod | grep '^iscsi_tcp' | awk '{print $1}')
scsi_transport_iscsi=scsi_transport_iscsi/$(lsmod | grep '^scsi_transport_iscsi '| awk '{print $1}')
for NEEDMOD in  $scsi_transport_iscsi $libiscsi $iscsi_tcbiscsi $iscsi_tcpp
do
  suffix=${NEEDMOD#*/}
  prefix=${NEEDMOD%/*}
 
  if [  -z $suffix ]
  then
    if [ -f $DRIVERDIR/$prefix.ko ]
    then
       insmod $DRIVERDIR/$prefix.ko
    else
       echo "need mod ${$prefix}.ko"
       exit 1
    fi
  fi
done
start()
{
  echo "start to connect target in"
  iscsid
  cmdQuery=$(iscsiadm -m discovery -t sendtargets -p ${ipAddr}:3260 | sed 's/.* //g')
  targetName=$cmdQuery
  echo ${targetName}
  iscsiadm -m node -T ${targetName} -p ${ipAddr}:3260 --login
}
stop()
{
  cmdQuery=$(iscsiadm -m discovery -t sendtargets -p ${ipAddr}:3260 | sed 's/.* //g')
 targetName=$cmdQuery
 iscsiadm -m node -T ${targetName} -p ${ipAddr}:3260 --logout
}
case $OP in
start)
      start
      ;;
stop)
     stop
     ;;
*)
    echo $"Usage:$0 {iscsi start|stop IPADDRESS}"
    exit 2
esac 

 

 

斷開連接命令:./iscsi start xxx.xxx.xxx.xxx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章