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

modifico soporte bhyve, añado soporte nfs y smb

pull/1/head
Pablo Sarria 6 роки тому
джерело
коміт
0f338108d7
1 змінених файлів з 48 додано та 25 видалено
  1. +48
    -25
      zonebackuptofile.sh

+ 48
- 25
zonebackuptofile.sh Переглянути файл

@@ -2,11 +2,12 @@

usage()
{
echo "Usage: $0 -z UUID -d days -r folder -s server" >&2
echo "Usage: $0 -z UUID -d days -r remote_folder -l local_folder -s server -t type" >&2
echo "ex: $o -z bbba5ecb-5bda-47a5-e103-a6bfa368bf68 -d 1 -r remote_folder -l /zone/tools/nfsshare -s 192.168.5.243 -t nfs" >&2
exit 1
}

while getopts "z:d:r:s:" opt;
while getopts "z:d:r:l:s:t:" opt;
do
case "$opt" in
z)
@@ -16,11 +17,17 @@ do
DAYS=$OPTARG
;;
r)
FOLDER=$OPTARG
RFOLDER=$OPTARG
;;
l)
LFOLDER=$OPTARG
;;
s)
SERVER=$OPTARG
;;
t)
TYPE=$OPTARG
;;
*)
usage
;;
@@ -29,50 +36,66 @@ done

shift $((OPTIND-1))

if [ -z "${UUID}" ] || [ -z "${DAYS}" ] || [ -z "${FOLDER}" ] || [ -z "${SERVER}" ]; then
if [ -z "${UUID}" || -z "${DAYS}" || -z "${RFOLDER}" || -z "${LFOLDER}" || -z "${SERVER}" && -z "${TYPE}" ]; 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
mkdir -p $LFOLDER

if [ $TYPE = "nfs" ]; then
OVH="/export/ftpbackup/${RFOLDER}"
mount $SERVER:$OVH $LFOLDER

if [ $? != 0 ]; then
echo "MOUNT FAILED."
umount $LFOLDER
exit
fi
elif [ $TYPE = "smb" ]; then
mount -F smbfs //o6h.smartos5:c0c0l1s0@${SERVER}/${RFOLDER} $LFOLDER

if [ $? != 0 ]; then
echo "MOUNT FAILED."
exit
fi
fi

mkdir -p $RUTADESTINO/$UUID
mkdir -p $LFOLDER/$UUID

if [ $? != 0 ]; then
echo "FAIL TO CREATE FOLDER $UUID."
umount $RUTADESTINO
umount $LFOLDER
exit
fi

# mantain backups of the last N days
find $RUTADESTINO/$UUID -type f -mtime +$DAYS -delete
find $LFOLDER/$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`
/usr/sbin/zfs send zones/$1@`date +%Y%m%d` > $LFOLDER/$UUID/$1@`date +%Y%m%d`
}

snapshot $UUID

if [ $BRAND = "kvm" ] || [ $BRAND = "bhyve" ] ; then
snapshot $UUID-disk0
elif [ $BRAND = "bhyve" ]; then
snapshot $UUID-disk0
if [ $BRAND = "kvm" ]
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
/usr/sbin/zonecfg -z $UUID export > $LFOLDER/$UUID/$UUID.`date +%Y%m%d`.cfg

if [ $TYPE = "nfs" ]; then
umount $LFOLDER
fi

umount $RUTADESTINO
## TODO
# smb: query for username
# smb: query for password

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