From b63145112110c807c230a888c73e43db14ae484a Mon Sep 17 00:00:00 2001 From: kerem Date: Mon, 12 Feb 2024 20:22:36 +0100 Subject: [PATCH] added ttols --- tools/backup.sh | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100755 tools/backup.sh diff --git a/tools/backup.sh b/tools/backup.sh new file mode 100755 index 0000000..513be1f --- /dev/null +++ b/tools/backup.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +#sudo apt-get install -y rsync +OK=0 +response="na" + +echo "#######################################" +echo "What kind of backup do you want to do:" +echo "Create new from ssh -> ns " +echo "Create new from local -> nl " +echo "Create itteration from ssh -> is" +echo "Create itteration from local -> il" +echo "Restore from local to local -> rl" +echo "#######################################" + + # loop until we get a good answer and break out + while [ "$OK" = 0 ] + do + read -p "Please choose : ns OR nl OR is OR il OR rl OR quit: " input + # Test the input + if [ "$input" = "ns" ] || [ "$input" = "nS" ] || [ "$input" = "Ns" ] || [ "$input" = "NS" ] + then + response="ns" + OK=1 + elif [ "$input" = "nl" ] || [ "$input" = "nL" ] || [ "$input" = "Nl" ] || [ "$input" = "NL" ] + then + response="nl" + OK=1 + elif [ "$input" = "is" ] || [ "$input" = "iS" ] || [ "$input" = "iS" ] || [ "$input" = "IS" ] + then + response="is" + OK=1 + elif [ "$input" = "il" ] || [ "$input" = "iL" ] || [ "$input" = "Il" ] || [ "$input" = "IL" ] + then + response="il" + OK=1 + elif [ "$input" = "rl" ] || [ "$input" = "rL" ] || [ "$input" = "Rl" ] || [ "$input" = "RL" ] + then + response="rl" + OK=1 + elif [ "$input" = "help" ] || [ "$input" = "h" ] + then + echo "What kinf of backup do you want to do:" + echo "Create new from ssh -> ns " + echo "Create new from local -> nl " + echo "Create itteration from ssh -> is" + echo "Create itteration from local -> il" + echo "Restore from local to local -> rl" + elif [ "$input" = "q" ] || [ "$input" = "quit" ] + then + exit + else + # Invalid input + echo "INPUT ERROR: Must be ns OR nl OR is OR il OR rl OR quit: Please try again." + fi + done + + +if [ "$response" = "ns" ]; +then + read -p "Source ip address: " -i -e sourceIp + read -p "Source user name: " -i -e sourceUser + read -p "Source directory: " -i "/" -e sourceDir + read -p "Target directory: " -i "/" -e targetDir + sudo rsync -aAXP -e ssh --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","swapfile","lost+found",".cache","Downloads",".ecryptfs"} $sourceUser@$sourceIp:$sourceDir $targetDir + +elif [ "$response" = "nl" ]; +then + read -p "Source directory: " -i "/" -e sourceDir + read -p "Target directory: " -i "/" -e targetDir + sudo rsync -aAXP --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","swapfile","lost+found",".cache","Downloads",".ecryptfs"} $sourceDir $targetDir + +elif [ "$response" = "is" ]; +then + read -p "Source ip address: " -i -e sourceIp + read -p "Source user name: " -i -e sourceUser + read -p "Source directory: " -i "/" -e sourceDir + read -p "Target current directory: " -i "/" -e linkDir + read -p "Target itteration directory: " -i "/" -e targetDir + sudo rsync -aAXPH -e ssh --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","swapfile","lost+found",".cache","Downloads",".ecryptfs"} --link-dest=$linkDir $sourceUser@$sourceIp:$sourceDir $targetDir + +elif [ "$response" = "il" ]; +then + read -p "Source directory: " -i "/" -e sourceDir + read -p "Target current directory: " -i "/" -e linkDir + read -p "Target itteration directory: " -i "/" -e targetDir + sudo rsync -aAXPH --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","swapfile","lost+found",".cache","Downloads",".ecryptfs"} --link-dest=$linkDir $sourceDir $targetDir + +elif [ "$response" = "rl" ]; +then + lsblk + read -p "Target Device to be mounted: " -i "/dev/" -e deviceName + read -p "Target device mount direcotry: " -i "/mnt/" -e targetDir + read -p "Backup directory: " -i "/" -e sourceDir + sudo mount $deviceName $targetDir + ls $targetDir + sudo rsync -aAXP --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","swapfile","lost+found",".cache","Downloads",".ecryptfs"} $sourceDir $targetDir +fi +exit