From d37d862ea774d5e320a153f0db36cc02564106ca Mon Sep 17 00:00:00 2001 From: pinkfeet Date: Sat, 2 Feb 2019 12:42:34 +0100 Subject: [PATCH] =?UTF-8?q?a=C3=B1ado=20getopt=20al=20control=20de=20param?= =?UTF-8?q?etros=20de=20entrada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zonemigrate.sh | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/zonemigrate.sh b/zonemigrate.sh index 899c724..b60f214 100755 --- a/zonemigrate.sh +++ b/zonemigrate.sh @@ -1,13 +1,31 @@ #!/usr/bin/bash -if [ "$#" -ne 2 ]; then - echo "Illegal number of parameters" - echo "Usage: $0 {UUID} {DESTINYNODE}" +usage() +{ + echo "Usage: $0 -z UUID -h hostname" >&2 exit 1 -fi +} -UUID=$1 -NODODESTINO=$2 +while getopts "z:h:" opt; +do + case "$opt" in + z) + UUID=$OPTARG + ;; + h) + HOSTNAME=$OPTARG + ;; + *) + usage + ;; + esac +done + +shift $((OPTIND-1)) + +if [ -z "${UUID}" ] || [ -h "${HOSTNAME}" ]; then + usage +fi KEYFILE="/usbkey/ssh/id_rsa" DESTINYPORT="2221" @@ -27,9 +45,9 @@ fi snapshot() { zfs snapshot $1@`date +%Y%m%d` - zfs send $1@`date +%Y%m%d` | $SSH $NODODESTINO zfs receive $1 + zfs send $1@`date +%Y%m%d` | $SSH $HOSTNAME zfs receive $1 zfs snapshot $1@`date +%Y%m%d`.incremental - zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $NODODESTINO zfs receive $1 + zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $HOSTNAME zfs receive $1 } # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg @@ -62,18 +80,18 @@ fi echo "exportamos configuracion..." zonecfg -z ${UUID} export > $CFG/${UUID}.cfg -$SCP $CFG/${UUID}.cfg $NODODESTINO:$CFG/${UUID}.cfg +$SCP $CFG/${UUID}.cfg $HOSTNAME:$CFG/${UUID}.cfg # destino echo "enviamos config a destino..." -$SSH $NODODESTINO zonecfg -z ${UUID} < $CFG/${UUID}.cfg -$SSH $NODODESTINO zoneadm -z ${UUID} attach -$SSH $NODODESTINO zoneadm -z ${UUID} halt +$SSH $HOSTNAME zonecfg -z ${UUID} < $CFG/${UUID}.cfg +$SSH $HOSTNAME zoneadm -z ${UUID} attach +$SSH $HOSTNAME zoneadm -z ${UUID} halt # reestablecemos el alias que usa vmadm -$SSH $NODODESTINO vmadm update ${UUID} alias=${ALIAS} +$SSH $HOSTNAME vmadm update ${UUID} alias=${ALIAS} vmadm update ${UUID} alias=${ALIAS} # detenemos la zona en local @@ -82,7 +100,7 @@ zoneadm -z ${UUID} halt # iniciamos la zona en remoto -$SSH $NODODESTINO zoneadm -z ${UUID} boot +$SSH $HOSTNAME zoneadm -z ${UUID} boot # TODO: