#!/bin/bash usage() { echo "Usage: $0 -z UUID -d days -r folder -s server" >&2 exit 1 } while getopts "z:d:r:s:" opt; do case "$opt" in z) UUID=$OPTARG ;; d) DAYS=$OPTARG ;; r) FOLDER=$OPTARG ;; s) SERVER=$OPTARG ;; *) usage ;; esac done shift $((OPTIND-1)) if [ -z "${UUID}" ] || [ -z "${DAYS}" ] || [ -z "${FOLDER}" ] || [ -z "${SERVER}" ]; then usage fi BRAND=`/usr/sbin/vmadm get $UUID | json brand | tr -d '\n'` RUTADESTINO="/zones/tools/mounts" RUTAORIGEN="/export/ftpbackup/${FOLDER}" SERVIDOR="${SERVER}" mkdir -p $RUTADESTINO mount $SERVIDOR:$RUTAORIGEN $RUTADESTINO if [ $? != 0 ]; then echo "MOUNT FAILED." umount $RUTADESTINO exit fi mkdir -p $RUTADESTINO/$UUID if [ $? != 0 ]; then echo "FAIL TO CREATE FOLDER $UUID." umount $RUTADESTINO exit fi # mantain backups of the last N days find $RUTADESTINO/$UUID -type f -mtime +$DAYS -delete snapshot() { /usr/sbin/zfs snapshot zones/$1@`date +%Y%m%d` /usr/sbin/zfs send zones/$1@`date +%Y%m%d` > $RUTADESTINO/$UUID/$1@`date +%Y%m%d` } snapshot $UUID if [ $BRAND = "kvm" ] || [ $BRAND = "bhyve" ] ; then snapshot $UUID-disk0 elif [ $BRAND = "bhyve" ]; then snapshot $UUID-disk0 fi /usr/sbin/zonecfg -z $UUID export > $RUTADESTINO/$UUID/$UUID.`date +%Y%m%d`.cfg umount $RUTADESTINO