scripts/FreeBSD/storage/zfs-dataset-backup.bash

35 lines
884 B
Bash

#!/usr/local/bin/bash
## config section
dataset_orig=$1
dataset_name=$(echo $dataset_orig | sed -e 's/\//-/g')
backup_location="/tank/backup/datasets"
backup_date=`date "+%Y-%m-%d"`
enc_password="supersecretstuff"
echo ""
echo "################## SNAPSHOT ###################"
echo "Making a snapshot of $dataset_orig"
## create snapshot
zfs snapshot $dataset_orig@$backup_date
# backup vm snapshot
echo ""
echo "################## BACKUP VM ##################"
echo "Send snapshot to local backup destination"
## send snapshot to backup destination
zfs send $dataset_orig@$backup_date | \
pigz -c -p 4 | \
openssl enc -aes-256-ctr -a -pbkdf2 -iter 1000 -salt -k $enc_password \
> $backup_location/$dataset_name-$backup_date.pigz.enc
## delete snapshot
zfs destroy $dataset_orig@$backup_date
# report done
echo ""
echo "############### ALL DONE THANKS ###############"
echo ""