]>
code.delx.au - monosys/blob - lib-ext-backup
4 for DEVICE
in /dev
/disk
/by-partlabel
/ext
*backup
*; do
5 if [ -L "$DEVICE" ]; then
6 ZPOOLNAME
="$(basename "$DEVICE")"
7 CRYPTNAME
="crypt-$(basename "$DEVICE")"
8 echo "> Found: $ZPOOLNAME -> $(readlink -e "$DEVICE")"
13 echo "ERROR! Couldn't find a backup device"
17 function pool_import
{
18 if ! zpool status
"$ZPOOLNAME" &> /dev
/null
; then
19 echo "> cryptsetup luksOpen $DEVICE $CRYPTNAME"
20 cryptsetup luksOpen
"$DEVICE" "$CRYPTNAME" --key-file "/etc/lukskeys/${ZPOOLNAME}"
21 echo "> zpool import $ZPOOLNAME"
22 zpool import
"$ZPOOLNAME"
26 function pool_export
{
27 echo "> zpool export $ZPOOLNAME"
28 for i
in $
(seq 10); do
29 zpool
export "$ZPOOLNAME" && break
31 echo "> cryptsetup luksClose $CRYPTNAME"
32 cryptsetup luksClose
"$CRYPTNAME"
35 function cleanup_snapshots
{
36 echo "> Cleaning snapshots"
38 sanoid
--configdir=/etc
/sanoid
/ext-backup
--verbose --prune-snapshots
40 zfs list
-t snapshot
-r "$ZPOOLNAME" -H -o name \
42 |
grep -Fv "@syncoid_$ZPOOLNAME" \
43 |
xargs -rn1 zfs destroy
-v
47 syncoid
--identifier "$ZPOOLNAME" "$@"