You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.9 KiB
100 lines
3.9 KiB
#!/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
|