36 lines
968 B
Bash
Executable File
36 lines
968 B
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
POOL=backup-chassis
|
|
ZVOL=system/backup/chassis.verweg.com/store
|
|
MAILTO=root
|
|
|
|
if [ -n "$SSH_ORIGINAL_COMMAND" ]; then
|
|
set -- $SSH_ORIGINAL_COMMAND
|
|
fi
|
|
|
|
if [ $# -lt 1 ];then
|
|
echo "No destination dataset given"
|
|
exit 1
|
|
fi
|
|
# zfs destroy backup-chassis/system/%recv
|
|
(
|
|
zfs snapshot system/backup/chassis.verweg.com/store@backup
|
|
geli attach -k /opt/backup/key -j /opt/backup/pass /dev/zvol/${ZVOL}
|
|
zpool import -R /backup/chassis.verweg.com/ -N ${POOL}
|
|
if zstdcat -vf | time zfs receive -v -Fu ${POOL}/${1}; then
|
|
zpool export ${POOL}
|
|
geli detach /dev/zvol/${ZVOL}.eli
|
|
zfs destroy system/backup/chassis.verweg.com/store@backup
|
|
logger -t zfs-receive "succesful backup for ${POOL}/${1}"
|
|
echo "OK"
|
|
else
|
|
logger -t zfs-receive "failed backup for ${POOL}/${1}"
|
|
echo "zfs-receive: failed backup for ${POOL}/${1}" | mail $MAILTO
|
|
zpool export ${POOL}
|
|
geli detach /dev/zvol/${ZVOL}.eli
|
|
echo "ERROR"
|
|
exit 1
|
|
fi
|
|
) 2>&1 | tee -a /var/log/zfs-receive.log
|
|
exit 0
|