summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
921a054)
- support multiple backing disks
- backup zfs props
+function cryptsetup_open {
for DEVICE in /dev/disk/by-partlabel/ext*backup*; do
for DEVICE in /dev/disk/by-partlabel/ext*backup*; do
- if [ -L "$DEVICE" ]; then
- ZPOOLNAME="$(basename "$DEVICE")"
- CRYPTNAME="crypt-$(basename "$DEVICE")"
- echo "> Found: $ZPOOLNAME -> $(readlink -e "$DEVICE")"
- return
+ if ! [ -L "$DEVICE" ]; then
+ continue
+ DISKNAME="$(basename "$DEVICE")"
+ CRYPTNAME="crypt-$DISKNAME"
+ echo "> cryptsetup luksOpen $DEVICE $CRYPTNAME"
+ cryptsetup luksOpen "$DEVICE" "$CRYPTNAME" --key-file "/etc/lukskeys/${DISKNAME}"
+ mkdir -p /run/ext-backup-crypt/
+ ln -s "/dev/mapper/$CRYPTNAME" /run/ext-backup-crypt/
- echo "ERROR! Couldn't find a backup device"
- exit 1
+function cryptsetup_close {
+ for CRYPTDEVICE in /dev/mapper/crypt-ext*backup*; do
+ if ! [ -L "$CRYPTDEVICE" ]; then
+ continue
+ fi
+ CRYPTNAME="$(basename "$CRYPTDEVICE")"
+ echo "> cryptsetup luksClose $CRYPTNAME"
+ cryptsetup luksClose "$CRYPTNAME"
+ rm -f "/run/ext-backup-crypt/$CRYPTNAME"
+ done
- if ! zpool status "$ZPOOLNAME" &> /dev/null; then
- echo "> cryptsetup luksOpen $DEVICE $CRYPTNAME"
- cryptsetup luksOpen "$DEVICE" "$CRYPTNAME" --key-file "/etc/lukskeys/${ZPOOLNAME}"
- echo "> zpool import $ZPOOLNAME"
- zpool import "$ZPOOLNAME"
+ echo "> zpool import -d /run/ext-backup-crypt -a"
+ zpool import -d /run/ext-backup-crypt -a
+
+ ZPOOLNAME="$(zpool list -H -o name|grep 'ext.*backup'|head -n1)"
+ if [ -z "$ZPOOLNAME" ]; then
+ echo "Error! Could not find pool!"
+ return 1
+
+ echo "> Found: $ZPOOLNAME"
}
function pool_export {
echo "> zpool export $ZPOOLNAME"
}
function pool_export {
echo "> zpool export $ZPOOLNAME"
zpool export "$ZPOOLNAME" && break
zpool export "$ZPOOLNAME" && break
- echo "> cryptsetup luksClose $CRYPTNAME"
- cryptsetup luksClose "$CRYPTNAME"
}
function cleanup_snapshots {
}
function cleanup_snapshots {
+ zfs get all -s local -H > /root/zfs-props.txt
+ cryptsetup_open
pool_import
sync_snapshots
cleanup_snapshots
pool_export
pool_import
sync_snapshots
cleanup_snapshots
pool_export