48 lines
1.3 KiB
Django/Jinja
48 lines
1.3 KiB
Django/Jinja
# Backup info
|
|
export BACKUP_DRIVE_UUID={{ disk.uuid }}
|
|
export BACKUP_DRIVE_PASSWORD={{ disk.password }}
|
|
export BACKUP_DRIVE_NAME=luks-$BACKUP_DRIVE_UUID
|
|
export BACKUP_DRIVE_MNT=/mnt/$BACKUP_DRIVE_NAME
|
|
|
|
# For notifications
|
|
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/{{ notifications.user.uid }}/bus
|
|
export USER={{ notifications.user.name }}
|
|
|
|
function log {
|
|
LEVEL=$1
|
|
MESSAGE=$2
|
|
echo "$LEVEL: $MESSAGE"
|
|
}
|
|
|
|
# Unlock backup drive
|
|
if [ -L /dev/disk/by-uuid/$BACKUP_DRIVE_UUID ]; then
|
|
cryptsetup luksOpen /dev/disk/by-uuid/$BACKUP_DRIVE_UUID $BACKUP_DRIVE_NAME --key-file=$BACKUP_DRIVE_PASSWORD
|
|
cryptsetup status /dev/mapper/$BACKUP_DRIVE_NAME
|
|
else
|
|
log "ERROR" "Drive $BACKUP_DRIVE_UUID could not be found."
|
|
exit 1
|
|
fi
|
|
|
|
if [ $? = 0 ]; then
|
|
log "INFO" "Drive $BACKUP_DRIVE_UUID unlocked"
|
|
else
|
|
log "ERROR" "Drive $BACKUP_DRIVE_UUID could not be unlocked."
|
|
exit 1
|
|
fi
|
|
|
|
# Create /mnt/uuid
|
|
log "INFO" "Creating $BACKUP_DRIVE_NAME"
|
|
mkdir -p $BACKUP_DRIVE_MNT
|
|
|
|
# Mount /mnt/uuid
|
|
log "INFO" "Mounting /dev/mapper/$BACKUP_DRIVE_NAME"
|
|
mount -t btrfs -o compress=zstd /dev/mapper/$BACKUP_DRIVE_NAME $BACKUP_DRIVE_MNT
|
|
|
|
if [ $? = 0 ]; then
|
|
log "INFO" "Drive $BACKUP_DRIVE_UUID mounted at $BACKUP_DRIVE_MNT"
|
|
exit 0
|
|
else
|
|
log "ERROR" "Drive $BACKUP_DRIVE_NAME could not be mounted."
|
|
exit 1
|
|
fi
|