Files
ZFS-Scripts/backup.sh

39 lines
581 B
Bash
Executable File

#!/bin/bash
set -euo pipefail
BASEDIR="$(dirname ${0} | sed "s|^.|${PWD}|")"
source "${BASEDIR}/backup.conf"
TIMESTAMP="$(date +%Y_%m_%d-%H_%M_%S)"
SNAPSHOT="${SOURCE}@${TIMESTAMP}"
sudo zfs snapshot ${SNAPSHOT}
if [[ -f "${BASEDIR}/backup-last" ]]; then
BACKUP_LAST="$(cat ${BASEDIR}/backup-last)"
sudo \
zfs \
send \
-i ${BACKUP_LAST} \
${SNAPSHOT} \
| \
sudo \
zfs \
receive \
${DEST}
else
sudo \
zfs \
send \
${SNAPSHOT} \
| \
sudo \
zfs \
receive \
${DEST}
fi
printf "@${TIMESTAMP}" | tee "${BASEDIR}/backup-last" &> /dev/null