Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
565
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. #!/bin/bash
  2. # hydra.sh
  3. # __ _
  4. # / _\_ __ ___ ___ | | _______ ___ _ ____
  5. # \ \| '_ ` _ \ / _ \| |/ / _ \ \/ / | | |_ /
  6. # _\ \ | | | | | (_) | < __/> <| |_| |/ /
  7. # \__/_| |_| |_|\___/|_|\_\___/_/\_\__, /___|
  8. # |___/
  9. #
  10. # Copyright (c) 2017 Smokexyz (sagunkho@hotmail.com)
  11. #
  12. # A multi-utility shell script that does the following -
  13. # checks login/char/map servers are running, if not, starts them in a new screen.
  14. # Backs-up your current database or emulator.
  15. # Recompiles your emulator.
  16. #
  17.  
  18. PATH=./:$PATH
  19.  
  20. L_SRV=login-server
  21. C_SRV=char-server
  22. M_SRV=map-server
  23.  
  24. print_help() {
  25. echo "Usage: ";
  26. echo "check (login|char|map)";
  27. echo " To check and automatically start a server in a new screen.";
  28. echo "recompile";
  29. echo " To recompile your server.";
  30. echo "backup (database|emulator)";
  31. echo " To generate backups of your database or emulator."
  32. echo " Example: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
  33. echo " backup emulator (zip password) (output dir)"
  34. #EOF
  35. }
  36.  
  37. check_server() {
  38. s=$1;
  39.  
  40. if [ ! -x ./$s ] && [ $s != $L_SRV -o $s != $C_SRV -o $s != $M_SRV ]; then
  41. echo "$s does not exist, or can't run."
  42. echo "Check your compile!"
  43. exit 1
  44. fi
  45.  
  46. RESULT=`pgrep ${s}`
  47. if [ "${RESULT:-null}" = null ]; then
  48. ((count++))
  49. echo -e "${s} not running."
  50. echo -e "Starting ${s}..."
  51. screen -dmS ${s}_${count} bash -c "./${s}; exec bash"
  52. echo -e "${s} started in screen ${s}_${count}."
  53. screen -ls
  54. else
  55. echo -e "${s} is running."
  56. screen -ls
  57. fi
  58.  
  59. #EOF
  60. }
  61.  
  62. case $1 in
  63. 'check')
  64. case $2 in
  65. 'login')
  66. check_server $L_SRV
  67. ;;
  68. 'char')
  69. check_server $C_SRV
  70. ;;
  71. 'map')
  72. check_server $M_SRV
  73. ;;
  74. *)
  75. print_help
  76. ;;
  77. esac
  78. ;;
  79. 'recompile')
  80. echo "recompiling..."
  81. make clean
  82. ./configure
  83. make sql plugins
  84. ;;
  85. 'backup')
  86. case $2 in
  87. 'database')
  88. if [ -z $3 ]; then
  89. echo "MySQL username is required!"
  90. echo "Usage: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
  91. exit 1;
  92. fi
  93. user=$3
  94. if [ -z $4 ]; then
  95. echo "MySQL password is required!"
  96. echo "Usage: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
  97. exit 1;
  98. fi
  99. pass=$4
  100. # Databases
  101. if [ -z $5 ]; then
  102. databases="--all-databases";
  103. else
  104. IFS=: read -ra db <<<"$5"
  105. for key in "${!db[@]}";
  106. do databases="${database} ${db[$key]}";
  107. done
  108. databases="--databases ${databases}";
  109. fi
  110. # Host
  111. if [ -z $6 ]; then
  112. host_name=127.0.0.1
  113. else
  114. host_name=$6
  115. fi
  116. # directory output default ~/database-backups/
  117. if [ -z $7 ]; then
  118. dir="${HOME}/backups/database-backups"
  119. else
  120. dir=$7
  121. fi
  122. day=`date +%d_%m_%Y`;
  123. path_info="${dir}/${day}";
  124. date_time=`date +%d-%m-%Y--%H-%M-%S`;
  125. mkdir -p 0777 $path_info;
  126. mysqldump -u $user -p$4 -h $host_name $databases > "${path_info}/${date_time}.sql";
  127. zip -r9 "${path_info}/${date_time}.sql.zip" "${path_info}/${date_time}.sql";
  128. rm -f "${path_info}/${date_time}.sql";
  129. ;;
  130. 'emulator')
  131. #password for zipped file.
  132. if [ -z $3 ]; then
  133. pass=""
  134. else
  135. pass=$3
  136. fi
  137. # directory output default ~/database-backups/
  138. if [ -z $4 ]; then
  139. dir="${HOME}/backups/emulator-backups";
  140. else
  141. dir=$7
  142. fi
  143. day=`date +%d_%m_%Y`;
  144. path_info="${dir}/${day}";
  145. date_time=`date +%d-%m-%Y--%H-%M-%S`;
  146. mkdir -p 0777 $path_info;
  147. zip -r9 "${path_info}/${date_time}.zip" ./*
  148. ;;
  149. *)
  150. print_help
  151. ;;
  152. esac
  153. ;;
  154. *)
  155. print_help
  156. ;;
  157. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement