IT. POST LIST

POST ALL LABEL

리눅스 서버(iscsi target) + 윈도우서버 (client) powershell + 배치파일 (수정중수정중)

By 때찌때찌맴매 - 1월 27, 2018

리눅스 서버(iscsi target) + 윈도우서버 (client) powershell + 배치파일

** 전 포스팅인 리눅스 서버(iscsi target) + 윈도우서버 (client) powershell   를 이용해 간단한 배치파일을 작성 했고, 스크립트 자체를 powershell 로 작성 하려 했으나 배치파일로  간단하게 작성 할 수 있을거 같아 배치파일로 진행 했습니다.

@echo off
ipconfig | find "IPv4" > c:\ipcheck_tmp
set /p ip_check= < c:\ipcheck_tmp

sc query | find "MSiSCSI" /c > c:\iscsistart
set /p iscsistart= <  c:\iscsistart

if "%iscsistart%" == "1" GOTO MENU
if "%iscsistart%" == "0" (
 sc config MSiSCSI start= auto
 net /y start MSiSCSI
 GOTO MENU
)
:MENU
cls
echo  ************************************************************
echo  *  1. 『추가』 또는 『추가,제거 업데이트』                             *
echo  *  2. 『완전 제거』                                             *
echo  *  3. 종료                                                  *
echo  ************************************************************
set /p no=NO.: 

if "%no%" == "1" (
 GOTO ATT
)
if "%no%" == "2" (
 GOTO DET
)
if "%no%" == "3" (
 del c:\ipcheck_tmp
 del c:\iscsistart
 exit
) else (
 GOTO MENU 
)

:ATT
powershell get-iscsitargetportal | find "3260" /c > c:\tmptarget
set /p target= < c:\tmptarget
if "%target%" == "0" GOTO NEWATT
if "%target%" == "1" GOTO UPDATE

:NEWATT
 cls

 powershell new-IscsiTargetPortal -TargetPortalAddress "{iscsi target ip}" | find "오류" /c > c:\tmpportal
 set /p portal= < c:\tmpportal  
 if "%portal%" == "1" GOTO ERRATT 
 if "%portal%" == "0" GOTO NEWATT_1 

:NEWATT_1
powershell Connect-IscsiTarget -NodeAddress iqn-%ip_check:~31,44% | find "대상 이름은 찾을 수 없거나" /c > c:\tmpnoconn
set /p noconn= < c:\tmpnoconn
if "%noconn%" == "0" (
 powershell Update-IscsiTarget
 cls   
 echo  ************************************************************
 echo  *  블록스토리지『신규 추가』가 완료되었습니다.                        *
 echo  ************************************************************
 del c:\tmpportal
 del c:\tmptarget
 del c:\tmpnoconn
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO DISK_CHECK
) else (
 cls   
 echo  ************************************************************
 echo  *  블록스토리지 『추가』를 실패하였습니다.                           *
 echo  ************************************************************
 powershell Remove-IscsiTargetPortal -TargetPortalAddress "{iscsi target ip}" -confirm:$false
 del c:\tmpportal
 del c:\tmptarget
 del c:\tmpnoconn
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO END
)


:UPDATE

cls
echo  ************************************************************
echo  *  블록스토리지『추가,제거 업데이트』중 입니다.                      *
echo  ************************************************************
powershell Connect-IscsiTarget -NodeAddress iqn-%ip_check:~31,44% | find "대상 이름은 찾을 수 없거나" /c > c:\tmpnoconn
set /p noconn= < c:\tmpnoconn
if "%noconn%" == "0" (
 powershell Update-IscsiTarget
 cls   
 echo  ************************************************************
 echo  *  블록스토리지 『추가,제거 업데이트』가 완료되었습니다.   *
 echo  ************************************************************
  del c:\tmptarget
 del c:\tmpnoconn
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO DISK_CHECK
) else (
 cls   
 echo  ************************************************************
 echo  *  블록스토리지 『추가,제거 업데이트』를 실패하였습니다.   *
 echo  ************************************************************
 powershell Remove-IscsiTargetPortal -TargetPortalAddress "{iscsi target ip}"  -confirm:$false
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO DISK_CHECK 
)

:ERRATT
cls
echo  ************************************************************
echo  *  블록스토리지『연결 실패』하였습니다.                    *
echo  ************************************************************
powershell Remove-IscsiTargetPortal -TargetPortalAddress "{iscsi target ip}" -confirm:$false
del c:\tmpportal
del c:\tmptarget
del c:\ipcheck_tmp
 del c:\iscsistart
GOTO END

:DET
cls
echo  ************************************************************
echo  *  현재 연결되어 있는 블록스토리지를『완전제거』합니다.                *
echo  ************************************************************
set /p YN= *  블록스토리지를『완전제거』하시겠습니까(Y/N)?  
if /i "%YN%" == "y" GOTO YES
if /i "%YN%" == "n" GOTO NO 
GOTO DET

:NO
cls
echo  ************************************************************ 
echo  *  블록스토리지『완전제거』를 취소하였습니다.              *
echo  ************************************************************
GOTO END

:YES
powershell get-iscsitargetportal | find "3260" /c > c:\tmpdisc
set /p target= < c:\tmpdisc
if %target% == 1 (
 powershell Disconnect-IscsiTarget -NodeAddress iqn-%ip_check:~31,44% -confirm:$false
 powershell Remove-IscsiTargetPortal -TargetPortalAddress "{iscsi target ip}" -confirm:$false
 powershell update-IscsiTarget
 cls
 echo  ************************************************************ 
 echo  *  블록스토리지가 정상적으로『완전제거』되었습니다.        *
 echo  ************************************************************
 del c:\tmpdisc 
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO DISK_CHECK
) else (
 cls
 echo  ************************************************************ 
 echo  *  현재 블록스토리지가 연결되어 있지 않습니다.             *
 echo  *  확인 후 다시 진행해 주시길 바랍니다.                    *
 echo  ************************************************************
 del c:\tmpdisc
 del c:\ipcheck_tmp
 del c:\iscsistart
 GOTO END
)
 

:DISK_CHECK
diskmgmt.msc
GOTO END


:END
pause


** 위 배치파일은  리눅스 iscsi서버에서 블록디바이스 추가 작업 진행 후 실행 해야 합니다.



  • Share:

You Might Also Like

0 개의 댓글