| @@ -42,12 +42,29 @@ if [ ! -f $KEYFILE ]; then | |||||
| exit 1 | exit 1 | ||||
| fi | fi | ||||
| check() | |||||
| { | |||||
| if [ $1 != 0 ]; then | |||||
| echo "exiting ... $1" | |||||
| exit $1 | |||||
| else echo "done." | |||||
| fi | |||||
| } | |||||
| snapshot() | snapshot() | ||||
| { | { | ||||
| echo "creando snapshot de $1 ..." | |||||
| zfs snapshot $1@`date +%Y%m%d` | zfs snapshot $1@`date +%Y%m%d` | ||||
| check $? | |||||
| echo "enviando snapshot de $1 a $HOSTNAME ..." | |||||
| zfs send $1@`date +%Y%m%d` | $SSH $HOSTNAME zfs receive $1 | zfs send $1@`date +%Y%m%d` | $SSH $HOSTNAME zfs receive $1 | ||||
| check $? | |||||
| echo "creando snapshot incremental de $1 ..." | |||||
| zfs snapshot $1@`date +%Y%m%d`.incremental | zfs snapshot $1@`date +%Y%m%d`.incremental | ||||
| check $? | |||||
| echo "enviando snapshot incremental de $1 a $HOSTNAME ..." | |||||
| zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $HOSTNAME zfs receive $1 | zfs send -i $1@`date +%Y%m%d` $1@`date +%Y%m%d`.incremental | $SSH $HOSTNAME zfs receive $1 | ||||
| check $? | |||||
| } | } | ||||
| # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg | # capturamos el alias que vmadm usa en base64 y que da problemas con el mitico zonecfg | ||||
| @@ -59,8 +76,8 @@ zonecfg -z ${UUID} "select attr name=alias; set value=temporal; end" | |||||
| snapshot ${ZONEPATH} | snapshot ${ZONEPATH} | ||||
| # verificamos si estamos tratando con una kvm y si es asi la respaldamos | |||||
| echo "verificamos filesystems (kvm) adicionales..." | |||||
| # verificamos si estamos tratando con una bhyve/kvm y si es asi la respaldamos | |||||
| echo "verificamos filesystems (bhyve|kvm) adicionales..." | |||||
| if [ $BRAND = "kvm" ] || [ $BRAND = "bhyve" ] ; then | if [ $BRAND = "kvm" ] || [ $BRAND = "bhyve" ] ; then | ||||
| FILESYSTEM=`vmadm get ${UUID} | json disks.0.zfs_filesystem | tr -d '\n'` | FILESYSTEM=`vmadm get ${UUID} | json disks.0.zfs_filesystem | tr -d '\n'` | ||||
| @@ -102,7 +119,6 @@ zoneadm -z ${UUID} halt | |||||
| $SSH $HOSTNAME zoneadm -z ${UUID} boot | $SSH $HOSTNAME zoneadm -z ${UUID} boot | ||||
| # TODO: | # TODO: | ||||
| # - puede haber mas de un FILESYSTEM en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno de ellos | # - puede haber mas de un FILESYSTEM en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno de ellos | ||||
| # - puede haber mas de un DATASET en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno | # - puede haber mas de un DATASET en la zona, necesitamos iterar por el array y lanzar la funcion snapshot sobre cada uno | ||||