Bläddra i källkod

añado getopt al control de parametros de entrada

pull/1/head
pinkfeet 7 år sedan
förälder
incheckning
d37d862ea7
1 ändrade filer med 32 tillägg och 14 borttagningar
  1. +32
    -14
      zonemigrate.sh

+ 32
- 14
zonemigrate.sh Visa fil

@@ -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:


Laddar…
Avbryt
Spara