Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/bash
- # DON'T EDIT
- COMMAND_TEMPLATE="python2 run.py -u %s -n '%s' -a %s -f %s "
- ####### EDIT VARIABLES BELOW
- # Edit device array below - be sure to change UUID, DEVICE NAME and ACCOUNT MANAGER FLAG only.
- # - ACCOUNT MANAGER FLAG is a switch to use account manager or not (true/false)
- # - FAST IV FLAG is a switch to use the new fast iv scanning of ++
- declare -A DEVICE_COMMANDS
- DEVICE_COMMANDS=(
- ["Phone5"]=$(printf "${COMMAND_TEMPLATE}" "7804a53a19d5b0bd6128b5a9ac74304cb5fa4083" "Phone5" "true" "false" )
- ["Phone13"]=$(printf "${COMMAND_TEMPLATE}" "60435058dd95515a27d7d12a7b99fa3060594342" "Phone13" "true" "false" )
- ["Phone11"]=$(printf "${COMMAND_TEMPLATE}" "8a043f8df556229e4679c209a4d3fe43a9b1429f" "Phone11" "true" "false" )
- ["Phone12"]=$(printf "${COMMAND_TEMPLATE}" "318083a99ef4949e822a6f97e1d4a2f096d54f92" "Phone12" "true" "false" )
- ["Phone7"]=$(printf "${COMMAND_TEMPLATE}" "a1ab61f065f39be7bdd34832493850d61c7e855f" "Phone7" "true" "false" )
- ["Phone1"]=$(printf "${COMMAND_TEMPLATE}" "bb58d2118f5658d6249fc4038f0c719dc05a44f6" "Phone1" "true" "false" )
- ["Phone20"]=$(printf "${COMMAND_TEMPLATE}" "35eb60365dfb368db0bd3fd66b3a8655c174d5df" "Phone20" "true" "false" )
- ["Phone6"]=$(printf "${COMMAND_TEMPLATE}" "76525a7292b888d35281a10eba0a001ce1fb96cd" "Phone6" "true" "false" )
- ["Phone4"]=$(printf "${COMMAND_TEMPLATE}" "34467fe8f52ccb5ecf394b7b9410c7b9907c7136" "Phone4" "true" "false" )
- ["Phone9"]=$(printf "${COMMAND_TEMPLATE}" "6af71f778fffbd31bcc6d03faff9c3048c1c9778" "Phone9" "true" "false" )
- ["Phone14"]=$(printf "${COMMAND_TEMPLATE}" "9bf46496cd7279851c4a4859498480f0280e38e7" "Phone14" "true" "false" )
- ["Phone3"]=$(printf "${COMMAND_TEMPLATE}" "80fbfa01d6b7642fd925e6fa0bd92acf84d7591f" "Phone3" "true" "false" )
- )
- # Config options
- TIMER=600 # number of seconds before terminating a tmux session and starting a new one
- SLEEP=120 # number of seconds to wait before moving on to the next batch of instances
- MAX_STARTING=2 # max number of instances to start concurrently
- HOSTIP= '9.0.0.0' # ip of the RDM host database
- PORT=3306 # port of the RDM host database
- DBNAME='rdmdb' # name of the RDM host database
- DB_USER='' # user account of the RDM host database
- PASSWORD='' # password for the DB_USER account of the RDM host database
- ####### BEGIN SCRIPT
- while True
- do
- starting=0
- clear
- for i in "${!DEVICE_COMMANDS[@]}"
- do
- if (tmux ls | grep -q "$i") >/dev/null 2>/dev/null; then
- LAST_SEEN=$(echo $(MYSQL_PWD="${PASSWORD}" mysql -u ${DB_USER} -h ${HOSTIP} -P ${PORT} -e "select (UNIX_TIMESTAMP(NOW()) - last_seen) from device where uuid = '${i}'" ${DBNAME}))
- TRIMMED=$(echo ${LAST_SEEN} | awk {'print $4'})
- if [ "${TRIMMED:0}" -gt "${TIMER}" ] && [ "${TRIMMED:0}" -lt 1540000000 ]; then
- printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} hasn't been seen in over ${TIMER} second(s). Restarting..."
- ((starting++))
- tmux kill-session -t "$i" >/dev/null 2>&1
- tmux new -d -s "$i" "${DEVICE_COMMANDS[$i]}";
- else
- printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} was seen ${TRIMMED} second(s) ago"
- fi
- else
- printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} session not found. Starting new session..."
- ((starting++))
- tmux new -d -s "$i" "${DEVICE_COMMANDS[$i]}";
- fi
- if [ "${starting}" -eq "${MAX_STARTING}" ]; then
- remaining=${SLEEP}
- tput sc
- while [[ ${remaining} -gt 0 ]];
- do
- tput rc; tput el
- printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s" "Waiting ${remaining} second(s) before continuing with the next batch of ${MAX_STARTING} instances..."
- sleep 1
- ((remaining--))
- done
- tput rc; tput el;
- starting=0
- fi
- done
- remaining=${SLEEP}
- tput sc
- while [[ ${remaining} -gt 0 ]];
- do
- tput rc; tput el
- printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s" "Waiting ${remaining} second(s) before beginning the next round..."
- sleep 1
- ((remaining--))
- done
- done
- ####### END SCRIPT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement