Переглянути джерело

1 en la funcion create_snap cambio la variable ZONE por DS

2 añado funcion para enviar dataset
3 añado verificacion de datasets adicionales y los copiamos tambien
pull/1/head
Pablo Sarria 5 роки тому
джерело
коміт
2f1ebcf834
1 змінених файлів з 60 додано та 28 видалено
  1. +60
    -28
      zonebackuptozone.sh

+ 60
- 28
zonebackuptozone.sh Переглянути файл

@@ -6,29 +6,6 @@ usage()
exit 1
}

check_err()
{
STATUS=$?
if [ ${STATUS} -ne 0 ]; then
echo "Unexpected error: ${STATUS}"
exit ${STATUS}
fi
}

check_snap()
{
ZONE=$1
zfs list -t snapshot zones/${ZONE}@`date +%Y%m%d` 2&>/dev/null 1>&2
}

create_snap()
{
ZONE=$1
echo "Creating snapshot of ${ZONE}..."
zfs snapshot zones/${ZONE}@`date +%Y%m%d`
check_err
echo "done."
}

while getopts ":s:z:b:i:" opt;
do
@@ -65,8 +42,46 @@ if [ -z ${SOURCEGZ} ] || [ -z "${UUID}" ] || [ -z ${BACKUPZ} ] || [ -z ${IDBACKU
usage
fi

echo "Checking for snapshot of ${UUID}"
# functions

check_err()
{
STATUS=$?
if [ ${STATUS} -ne 0 ]; then
echo "Unexpected error: ${STATUS}"
exit ${STATUS}
fi
}

check_snap()
{
ZONE=$1
echo "Checking for snapshot of ${UUID}"
zfs list -t snapshot zones/${ZONE}@`date +%Y%m%d` 2&>/dev/null 1>&2
}

create_snap()
{
DS=$1
echo "Creating snapshot of ${DS}..."
zfs snapshot zones/${DS}@`date +%Y%m%d`
check_err
echo "done."
}

send_snap ()
{
DATASET=$1
echo "Sending snapshot to ${BACKUPZ}..."
zfs send zones/${DATASET}@`date +%Y%m%d` | ssh -i /usbkey/ssh/id_rsa -p 2221 $BACKUPZ zfs receive zones/${IDBACKUPZ}/data/${SOURCEGZ}/${DATASET}
check_err
echo "done."
}

# main

check_snap ${UUID}

if [ $? -ne 0 ]; then
create_snap ${UUID}
else
@@ -74,10 +89,27 @@ else
echo "done."
fi

echo "Sending snapshot to ${BACKUPZ}..."
zfs send zones/${UUID}@`date +%Y%m%d` | ssh -i /usbkey/ssh/id_rsa -p 2221 $BACKUPZ zfs receive zones/${IDBACKUPZ}/data/${SOURCEGZ}/${UUID}
check_err
echo "done."
send_snap ${UUID}

# we check this UUID for additional datasets

echo "Look for addtional datasets..."
DATASET=`vmadm get ${UUID} | json datasets.0 | tr -d '\n'`

if [ -n "${DATASET}" ]; then
check_snap ${DATASET}
fi

if [ $? -ne 0 ]; then
create_snap ${DATASET}
else
echo "Snapshot of ${DATASET} already available..."
echo "done."
fi

send_snap ${DATASET}

# we send the config

echo "Sending config to ${BACKUPZ}..."
zonecfg -z ${UUID} export | ssh -i /usbkey/ssh/id_rsa -p 2221 $BACKUPZ "cat >/data/${SOURCEGZ}/${UUID}.cfg"


Завантаження…
Відмінити
Зберегти