Skip to content

Instantly share code, notes, and snippets.

@kidpixo
Created April 11, 2024 10:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kidpixo/ab20a4f43a00d327d83705960eb3b16d to your computer and use it in GitHub Desktop.
Save kidpixo/ab20a4f43a00d327d83705960eb3b16d to your computer and use it in GitHub Desktop.
function to mount and decrpyt one of the USB disks in a list
#!/bin/bash
check_backup_disk() {
local -a EXTERNAL_DISK_PATHS=(
"/dev/disk/by-id/usb-SOME_EXTERNAL_USB_XXXXXXXXXXXXXXX-0:0"
"/dev/disk/by-id/usb-SOME_External_USB_3.0_XXXXXXXXXXXXXX-0:0"
)
CURRENT_DISK=""
for path in "${EXTERNAL_DISK_PATHS[@]}"; do
if [[ -e "$path" ]]; then
CURRENT_DISK=$(basename "$path")
break
fi
done
}
mount_external_backup_disks() {
if [ -n "$CURRENT_DISK" ]; then
echo "Current Disk : $CURRENT_DISK"
echo "Decrytp $CURRENT_DISK-part2"
echo "Activate LVM volume_backup (root,home,swap)"
echo "mount /dev/volume_backup/root to /mnt/backup"
echo "mount /dev/volume_backup/home to /mnt/backup/home"
echo "mount $CURRENT_DISK-part1 to /mnt/backup/boot"
else
echo "NO External Disk Present : STOPPING"
fi
}
close_external_backup_disks() {
if [ -n "$CURRENT_DISK" ]; then
echo "Current Disk : $CURRENT_DISK"
echo "Umount everything under /mnt/backup"
echo "Deactivate volume_backup"
echo "Close encrypted partition"
else
echo "NO External Disk Present : STOPPING"
fi
}
rsync_backup(){
if [[ -d "/mnt/backup" && -d "/mnt/backup/boot" && -d "/mnt/backup/home" && -n "$CURRENT_DISK" ]]; then
echo "Current Disk : $CURRENT_DISK"
echo "sync everything BUT /boot to $CURRENT_DISK"
echo sudo rsync -aAXHl --delete --info=progress2 --human-readable --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/boot"} / /mnt/backup/
echo sudo rsync -aAXHl --inplace --delete --info=progress2 --human-readable --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /boot/ /mnt/backup/boot
echo "copy local backuped systemd-boot entries and fstab to backup disk"
echo sudo cp $CURRENT_DISK/boot/loader/entries/*conf /mnt/backup/boot/loader/entries/
echo sudo cp $CURRENT_DISK/etc/fstab /mnt/backup/etc/
else
# Actions to perform if any path does not exist or CURRENT_DISK is empty
if [ ! -d "/mnt/backup" ]; then
echo "/mnt/backup does not exist."
fi
if [ ! -d "/mnt/backup/boot" ]; then
echo "/mnt/backup/boot does not exist."
fi
if [ ! -d "/mnt/backup/home" ]; then
echo "/mnt/backup/home does not exist."
fi
if [ -z "$CURRENT_DISK" ]; then
echo "CURRENT_DISK is empty."
fi
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment