#!/bin/bash

set -o nounset

# SYSTEM BACKUP
BCKROOT=/backup
ZFSPOOL=bckpool
BCKNAME=hypervisor

BCKDIR=$BCKROOT/${BCKNAME}
BCKSUB=$BCKDIR/sys

(which rsync >/dev/null 2>&1) || exit 21

[ -d $BCKROOT ] || exit 21
(zpool status $ZFSPOOL >/dev/null 2>&1) || exit 12
(grep "^${ZFSPOOL} ${BCKROOT} zfs" /proc/mounts >/dev/null) || exit 13
if ! [ -d ${BCKROOT}/.zfs/snapshot ]; then
	(zfs set snapdir=visible ${ZFSPOOL}) || exit 21
fi


[ -d $BCKDIR ] || zfs create ${ZFSPOOL}/${BCKNAME}

# rsync to backup directory

rsync -a -r -q -E --one-file-system --delete --delete-excluded --force --exclude-from=/etc/sysbackup/sysbackup-exclude.conf / $BCKSUB/ >/dev/null 2>&1
ERR=$?

SSNAME=`date +%y%m%d-%H%M`
zfs snapshot ${ZFSPOOL}/${BCKNAME}@${SSNAME}

zfs list -H -t snapshot -o name -S creation -r ${ZFSPOOL}/${BCKNAME} |tail -n +15 | xargs -r -n 1 zfs destroy -d

exit 0
