Guest User

Untitled

a guest
May 27th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #!/bin/bash
  2. #PUT DOMAIN NAMES IN THESES VAR
  3. domainnames=("example.com" "example.net")
  4.  
  5.  
  6. ctrl_c(){
  7. echo -e "quitting ..."
  8. exit 130;
  9. }
  10.  
  11. startbackup(){
  12. today=`date '+%Y_%m_%d__%H_%M_%S'`
  13. filename=backup-$domain-$today.rsync
  14. mkdir $PWD/$filename
  15. echo -e "Login in ..."
  16. rsync -aAXv --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} root@$domain:/ $PWD/$filename
  17. }
  18. startrestore(){
  19. today=`date '+%Y_%m_%d__%H_%M_%S'`
  20. filename=$providedfilename.rsync
  21. rsync -aAXv --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / $PWD/$filename
  22. }
  23.  
  24. loopmode(){
  25. trap ctrl_c INT
  26. for domain in "${domainnames[@]}"
  27. do
  28. echo -e "Backup in progress for $domain ..."
  29. trap ctrl_c INT
  30. startbackup "$domain" && echo -e "Backup done"
  31. done
  32. }
  33.  
  34. passtotmux() {
  35. _FUNC_TO_PASS="${1}"
  36. _IFS_BACKUP="${IFS}"
  37. IFS=$'\n'
  38. for i in $(type ${_FUNC_TO_PASS} | tail -n +2); do
  39. tmux send-keys "${i}" C-m
  40. done
  41. IFS="${_IFS_BACKUP}"
  42. }
  43.  
  44. menu(){
  45. options=("Backup (1)" "Restore (2)" "Exit (3)")
  46. select opt in "${options[@]}"
  47. do
  48. case $opt in
  49. "Backup (1)")
  50. loopmode
  51. ;;
  52. "Restore (2)")
  53. ;;
  54. "Exit (3)")
  55. break
  56. ;;
  57. *) echo -e "Invalid option" ; clear ; menu;
  58. esac
  59. done
  60. }
  61.  
  62. tmux new-session -A -d -s Backup-Restore 'bash backuprestore.sh menu'
  63. tmux at
  64. "$@"
Add Comment
Please, Sign In to add comment