scripts/sync-backup
2023-02-22 19:17:52 +01:00

40 lines
1.0 KiB
Bash
Executable File

#!/bin/env bash
set -euo pipefail
read -sp "Password: " password
# get the drive path
drive="$1"
printf '\n%s\n\n' "Opening encrypted drive"
# open the encrypted drive
sudo cryptsetup luksOpen $drive luks
printf '\n%s\n\n' "Mounting encrypted drive"
# check if the /mnt/encrypted directory exists if not create it
[ -d "/mnt/encrypted/" ] || printf '%s\n' "$password" | sudo -S mkdir -p /mnt/encrypted
# mount the decrypted drive to /mnt/encrypted/ directory
printf '%s\n' "$password" | sudo -S mount /dev/mapper/luks /mnt/encrypted
# Here comes the fun part
# Using a list to backup all my shit
while read Line; do
echo "Syncing $(basename $Line)"
rsync -ahAX -v --delete "$Line" /mnt/encrypted
done <<< "$(cat $HOME/.config/rsync/backup-list)"
printf '\n%s\n\n' "Unmounting encrypted drive"
# unmount the decrypted drive and close/encypt it again
printf '%s\n' "$password" | sudo -S umount /dev/mapper/luks
printf '\n%s\n\n' "Closing encrypted drive"
printf '%s\n' "$password" | sudo -S cryptsetup luksClose luks