Created
April 11, 2024 10:11
-
-
Save kidpixo/ab20a4f43a00d327d83705960eb3b16d to your computer and use it in GitHub Desktop.
Revisions
-
kidpixo created this gist
Apr 11, 2024 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,65 @@ #!/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 }