Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # hydra.sh
- # __ _
- # / _\_ __ ___ ___ | | _______ ___ _ ____
- # \ \| '_ ` _ \ / _ \| |/ / _ \ \/ / | | |_ /
- # _\ \ | | | | | (_) | < __/> <| |_| |/ /
- # \__/_| |_| |_|\___/|_|\_\___/_/\_\__, /___|
- # |___/
- #
- # Copyright (c) 2017 Smokexyz (sagunkho@hotmail.com)
- #
- # A multi-utility shell script that does the following -
- # checks login/char/map servers are running, if not, starts them in a new screen.
- # Backs-up your current database or emulator.
- # Recompiles your emulator.
- #
- PATH=./:$PATH
- L_SRV=login-server
- C_SRV=char-server
- M_SRV=map-server
- print_help() {
- echo "Usage: ";
- echo "check (login|char|map)";
- echo " To check and automatically start a server in a new screen.";
- echo "recompile";
- echo " To recompile your server.";
- echo "backup (database|emulator)";
- echo " To generate backups of your database or emulator."
- echo " Example: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
- echo " backup emulator (zip password) (output dir)"
- #EOF
- }
- check_server() {
- s=$1;
- if [ ! -x ./$s ] && [ $s != $L_SRV -o $s != $C_SRV -o $s != $M_SRV ]; then
- echo "$s does not exist, or can't run."
- echo "Check your compile!"
- exit 1
- fi
- RESULT=`pgrep ${s}`
- if [ "${RESULT:-null}" = null ]; then
- ((count++))
- echo -e "${s} not running."
- echo -e "Starting ${s}..."
- screen -dmS ${s}_${count} bash -c "./${s}; exec bash"
- echo -e "${s} started in screen ${s}_${count}."
- screen -ls
- else
- echo -e "${s} is running."
- screen -ls
- fi
- #EOF
- }
- case $1 in
- 'check')
- case $2 in
- 'login')
- check_server $L_SRV
- ;;
- 'char')
- check_server $C_SRV
- ;;
- 'map')
- check_server $M_SRV
- ;;
- *)
- print_help
- ;;
- esac
- ;;
- 'recompile')
- echo "recompiling..."
- make clean
- ./configure
- make sql plugins
- ;;
- 'backup')
- case $2 in
- 'database')
- if [ -z $3 ]; then
- echo "MySQL username is required!"
- echo "Usage: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
- exit 1;
- fi
- user=$3
- if [ -z $4 ]; then
- echo "MySQL password is required!"
- echo "Usage: backup database [username] [password] (database1:database2...) (hostname) (output dir)"
- exit 1;
- fi
- pass=$4
- # Databases
- if [ -z $5 ]; then
- databases="--all-databases";
- else
- IFS=: read -ra db <<<"$5"
- for key in "${!db[@]}";
- do databases="${database} ${db[$key]}";
- done
- databases="--databases ${databases}";
- fi
- # Host
- if [ -z $6 ]; then
- host_name=127.0.0.1
- else
- host_name=$6
- fi
- # directory output default ~/database-backups/
- if [ -z $7 ]; then
- dir="${HOME}/backups/database-backups"
- else
- dir=$7
- fi
- day=`date +%d_%m_%Y`;
- path_info="${dir}/${day}";
- date_time=`date +%d-%m-%Y--%H-%M-%S`;
- mkdir -p 0777 $path_info;
- mysqldump -u $user -p$4 -h $host_name $databases > "${path_info}/${date_time}.sql";
- zip -r9 "${path_info}/${date_time}.sql.zip" "${path_info}/${date_time}.sql";
- rm -f "${path_info}/${date_time}.sql";
- ;;
- 'emulator')
- #password for zipped file.
- if [ -z $3 ]; then
- pass=""
- else
- pass=$3
- fi
- # directory output default ~/database-backups/
- if [ -z $4 ]; then
- dir="${HOME}/backups/emulator-backups";
- else
- dir=$7
- fi
- day=`date +%d_%m_%Y`;
- path_info="${dir}/${day}";
- date_time=`date +%d-%m-%Y--%H-%M-%S`;
- mkdir -p 0777 $path_info;
- zip -r9 "${path_info}/${date_time}.zip" ./*
- ;;
- *)
- print_help
- ;;
- esac
- ;;
- *)
- print_help
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement