Você não pode selecionar mais de 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
- #!/usr/bin/bash
-
- usage()
- {
- echo "Usage: $0 [ -s hostname ] [ -z UUID ] [ -b backupzone ] [ -i idbackupzone ]" >&2
- 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
- case "$opt" in
- s)
- SOURCEGZ=$OPTARG
- ;;
- z)
- UUID=$OPTARG
- ;;
- b)
- BACKUPZ=$OPTARG
- ;;
- i)
- IDBACKUPZ=$OPTARG
- ;;
- \?)
- echo "Error: Invalid Option: -${OPTARG}" >&2
- usage
- ;;
- :)
- echo "Error: -${OPTARG} requires an argument."
- usage
- ;;
- *)
- usage
- ;;
- esac
- done
-
- shift $((OPTIND -1 ))
-
- if [ -z ${SOURCEGZ} ] || [ -z "${UUID}" ] || [ -z ${BACKUPZ} ] || [ -z ${IDBACKUPZ} ]; then
- usage
- fi
-
- echo "Checking for snapshot of ${UUID}"
- check_snap ${UUID}
- if [ $? -ne 0 ]; then
- create_snap ${UUID}
- else
- echo "Snapshot of ${UUID} already available..."
- 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."
-
- echo "Sending config to ${BACKUPZ}..."
- zonecfg -z ${UUID} export | ssh -i /usbkey/ssh/id_rsa -p 2221 $BACKUPZ "cat >/data/${SOURCEGZ}/${UUID}.cfg"
- check_err
- echo "done."
|