Created
April 11, 2024 10:11
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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