Advertisement
Guest User

Untitled

a guest
Dec 4th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. #!/usr/local/bin/bash
  2.  
  3. # DON'T EDIT
  4. COMMAND_TEMPLATE="python2 run.py -u %s -n '%s' -a %s -f %s "
  5.  
  6. ####### EDIT VARIABLES BELOW
  7.  
  8. # Edit device array below - be sure to change UUID, DEVICE NAME and ACCOUNT MANAGER FLAG only.
  9. # - ACCOUNT MANAGER FLAG is a switch to use account manager or not (true/false)
  10. # - FAST IV FLAG is a switch to use the new fast iv scanning of ++
  11. declare -A DEVICE_COMMANDS
  12. DEVICE_COMMANDS=(
  13. ["Phone5"]=$(printf "${COMMAND_TEMPLATE}" "7804a53a19d5b0bd6128b5a9ac74304cb5fa4083" "Phone5" "true" "false" )
  14. ["Phone13"]=$(printf "${COMMAND_TEMPLATE}" "60435058dd95515a27d7d12a7b99fa3060594342" "Phone13" "true" "false" )
  15. ["Phone11"]=$(printf "${COMMAND_TEMPLATE}" "8a043f8df556229e4679c209a4d3fe43a9b1429f" "Phone11" "true" "false" )
  16. ["Phone12"]=$(printf "${COMMAND_TEMPLATE}" "318083a99ef4949e822a6f97e1d4a2f096d54f92" "Phone12" "true" "false" )
  17. ["Phone7"]=$(printf "${COMMAND_TEMPLATE}" "a1ab61f065f39be7bdd34832493850d61c7e855f" "Phone7" "true" "false" )
  18. ["Phone1"]=$(printf "${COMMAND_TEMPLATE}" "bb58d2118f5658d6249fc4038f0c719dc05a44f6" "Phone1" "true" "false" )
  19. ["Phone20"]=$(printf "${COMMAND_TEMPLATE}" "35eb60365dfb368db0bd3fd66b3a8655c174d5df" "Phone20" "true" "false" )
  20. ["Phone6"]=$(printf "${COMMAND_TEMPLATE}" "76525a7292b888d35281a10eba0a001ce1fb96cd" "Phone6" "true" "false" )
  21. ["Phone4"]=$(printf "${COMMAND_TEMPLATE}" "34467fe8f52ccb5ecf394b7b9410c7b9907c7136" "Phone4" "true" "false" )
  22. ["Phone9"]=$(printf "${COMMAND_TEMPLATE}" "6af71f778fffbd31bcc6d03faff9c3048c1c9778" "Phone9" "true" "false" )
  23. ["Phone14"]=$(printf "${COMMAND_TEMPLATE}" "9bf46496cd7279851c4a4859498480f0280e38e7" "Phone14" "true" "false" )
  24. ["Phone3"]=$(printf "${COMMAND_TEMPLATE}" "80fbfa01d6b7642fd925e6fa0bd92acf84d7591f" "Phone3" "true" "false" )
  25. )
  26.  
  27. # Config options
  28. TIMER=600 # number of seconds before terminating a tmux session and starting a new one
  29. SLEEP=120 # number of seconds to wait before moving on to the next batch of instances
  30. MAX_STARTING=2 # max number of instances to start concurrently
  31.  
  32. HOSTIP= '9.0.0.0' # ip of the RDM host database
  33. PORT=3306 # port of the RDM host database
  34. DBNAME='rdmdb' # name of the RDM host database
  35. DB_USER='' # user account of the RDM host database
  36. PASSWORD='' # password for the DB_USER account of the RDM host database
  37.  
  38. ####### BEGIN SCRIPT
  39.  
  40. while True
  41. do
  42. starting=0
  43. clear
  44.  
  45. for i in "${!DEVICE_COMMANDS[@]}"
  46. do
  47. if (tmux ls | grep -q "$i") >/dev/null 2>/dev/null; then
  48. 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}))
  49. TRIMMED=$(echo ${LAST_SEEN} | awk {'print $4'})
  50.  
  51. if [ "${TRIMMED:0}" -gt "${TIMER}" ] && [ "${TRIMMED:0}" -lt 1540000000 ]; then
  52. printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} hasn't been seen in over ${TIMER} second(s). Restarting..."
  53. ((starting++))
  54.  
  55. tmux kill-session -t "$i" >/dev/null 2>&1
  56. tmux new -d -s "$i" "${DEVICE_COMMANDS[$i]}";
  57. else
  58. printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} was seen ${TRIMMED} second(s) ago"
  59. fi
  60. else
  61. printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s\n" "${i} session not found. Starting new session..."
  62. ((starting++))
  63. tmux new -d -s "$i" "${DEVICE_COMMANDS[$i]}";
  64. fi
  65.  
  66. if [ "${starting}" -eq "${MAX_STARTING}" ]; then
  67. remaining=${SLEEP}
  68. tput sc
  69. while [[ ${remaining} -gt 0 ]];
  70. do
  71. tput rc; tput el
  72. printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s" "Waiting ${remaining} second(s) before continuing with the next batch of ${MAX_STARTING} instances..."
  73. sleep 1
  74. ((remaining--))
  75. done
  76. tput rc; tput el;
  77. starting=0
  78. fi
  79. done
  80.  
  81. remaining=${SLEEP}
  82. tput sc
  83. while [[ ${remaining} -gt 0 ]];
  84. do
  85. tput rc; tput el
  86. printf "[$(date '+%Y-%m-%d %H:%M:%S')] %s" "Waiting ${remaining} second(s) before beginning the next round..."
  87. sleep 1
  88. ((remaining--))
  89. done
  90. done
  91.  
  92. ####### END SCRIPT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement