리눅스 서버(iscsi target) + 윈도우서버 (client) powershell + 배치파일 (수정중수정중)
By 때찌때찌맴매 - 1월 27, 2018
리눅스 서버(iscsi target) + 윈도우서버 (client) powershell + 배치파일
** 전 포스팅인 리눅스 서버(iscsi target) + 윈도우서버 (client) powershell 를 이용해 간단한 배치파일을 작성 했고, 스크립트 자체를 powershell 로 작성 하려 했으나 배치파일로 간단하게 작성 할 수 있을거 같아 배치파일로 진행 했습니다.
** 위 배치파일은 리눅스 iscsi서버에서 블록디바이스 추가 작업 진행 후 실행 해야 합니다.
@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서버에서 블록디바이스 추가 작업 진행 후 실행 해야 합니다.
0 개의 댓글