IBM SVC Host-Mapping von einem Host zu einem anderen kopieren per Batch
Aus znilwiki
Problem
Ich hatte hier 2 Standorte mit Hosts die alle die LUNS des Standortes gegenüber haben sollten - die Host an Standort A also alle LUNS vom Standort B dazu und umgekehrt.
Bei der Suche nach Inspiration fand ich das hier: http://christian.weblog.heimdaheim.de/2009/10/11/ibm-svc-copy-vdisk-host-mapping-from-one-host-to-another/
Prima. Nur hatte ich keine Linux-Hosts beim Kunden sondern nur Putty (zum Glück mit plink.exe
) und was Windows sonst so bietet - also BATCH!
Deshalb habe ich "mal eben" das Linux-Bash-Script in ein Windows-Batch-Script übersetzt.
Vorbereitung
Kopiert ein ein Verzeichnis die plink.exe
Diese könnt Ihr hier herunterladen: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Ich nehme immer den Windows Installer - da ist alles dabei.
Dann müsst Ihr euch mindestens einmal per puTTY erfolgreich mit dem SVC verbinden - und die Schlüsselwarnung bestätigen.
Nachdem Ihr also die plink.exe
in ein Verzeichnis eurer Wahl kopiert habt,
erstellt Ihr im gleichen Verzeichnis eine neue Datei:
SVCCopyMappings.cmd
mit folgendem Inhalt:
@echo off
echo SVC Copy Mappings
echo QuellHost: %1
echo Zielhost : %2
echo.
SET SVCIP=192.168.70.120
SET SVCBENUTZERNAME=superuser
SET SVCPASSWORT=passw0rd
SET TEMPDATEI=%TEMP%\SVCXopyMapping-tmp.txt
plink -batch %SVCBENUTZERNAME%@%SVCIP% -pw %SVCPASSWORT% "lshostvdiskmap -nohdr -delim : %1" > %TEMPDATEI%
If ERRORLEVEL 1 (
echo Fehler beim Ausfuehren von plink.exe! Pruefen Sie die Angaben im Script!
GOTO ENDE
)
For /F "eol=# tokens=1-8 delims=:" %%a in (%TEMPDATEI%) do call :COPYMAPPINGS %%c %%e %SVCIP% %SVCBENUTZERNAME% %SVCPASSWORT% %2
GOTO ENDE
:COPYMAPPINGS
REM echo vdisk_scsi_id: %1
REM echo vdisk_name : %2
REM echo SVC Adresse : %3
REM echo SVC Benutzer : %4
REM echo SVC Passwort : %5
REM echo Zielhost : %6
plink -batch %4@%3 -pw %5 "lshost %6" > NUL:
If ERRORLEVEL 1 (
echo Zielhost %6 existiert nicht!
GOTO :EOF
)
plink -batch %4@%3 -pw %5 "mkvdiskhostmap -force -host %6 -scsi %1 %2"
GOTO :EOF
REM #######################################################################################################
:ENDE
del %TEMPDATEI%
Anpassung
Ihr müsst bei euch nun die Zeilen
SET SVCIP=192.168.70.120 SET SVCBENUTZERNAME=superuser SET SVCPASSWORT=passw0rd
anpassen.
Kopieren der Mappings
Ruft die Datei mit
SVCCopyMappings.cmd QuellHost ZielHost
auf - das ist schon alles!