command_backup.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. # LGSM command_backup.sh function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="271215"
  6. # Description: Creates a .tar.gz file in the backup directory.
  7. local modulename="Backup"
  8. function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  9. check.sh
  10. backupname="${servicename}-$(date '+%Y-%m-%d-%H%M%S')"
  11. echo ""
  12. echo "${gamename} Backup"
  13. echo "============================"
  14. echo ""
  15. echo "The following backup will be created:"
  16. echo ""
  17. echo "${backupdir}/${backupname}.tar.gz"
  18. echo ""
  19. while true; do
  20. read -p "Continue? [y/N]" yn
  21. case $yn in
  22. [Yy]* ) break;;
  23. [Nn]* ) echo Exiting; return;;
  24. * ) echo "Please answer yes or no.";;
  25. esac
  26. done
  27. tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -Ec "^${servicename}:")
  28. if [ "${tmuxwc}" -eq 1 ]; then
  29. echo ""
  30. fn_printwarningnl "${servicename} is currently running."
  31. sleep 1
  32. while true; do
  33. read -p "Stop ${servicename} while running the backup? [y/N]" yn
  34. case $yn in
  35. [Yy]* ) command_stop.sh; break;;
  36. [Nn]* ) break;;
  37. * ) echo "Please answer yes or no.";;
  38. esac
  39. done
  40. fi
  41. fn_scriptlog "Started"
  42. echo -en "starting backup.\r"
  43. sleep 1
  44. echo -en "starting backup..\r"
  45. sleep 1
  46. echo -en "starting backup...\r"
  47. sleep 1
  48. echo -en "\n"
  49. cd "${rootdir}"
  50. if [ ! -d "${backupdir}" ]; then
  51. mkdir -v "${backupdir}"
  52. fi
  53. tar -cvzf "${backupdir}/${backupname}.tar.gz" --exclude "${backupdir}" ./*
  54. echo ""
  55. echo "Backup created: ${backupdir}/${backupname}.tar.gz"
  56. fn_scriptlog "Created: ${backupdir}/${backupname}.tar.gz"
  57. sleep 1
  58. echo ""
  59. fn_printcompletenl "Complete."
  60. fn_scriptlog "Complete"
  61. echo ""