39 lines
581 B
Bash
Executable File
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
|