Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. LOGPATH=slave-status.log
  4.  
  5. /usr/local/bin/redis-cli INFO | egrep 'slave|master_repl' > $LOGPATH
  6. DATE=$(date);
  7. MASTERDATA=();
  8. SLAVEINTS=();
  9. SLAVEIPS=();
  10.  
  11. MASTERTEMPLATE="{\"Date\":\"%s\",\"SlaveCount\":%s,\"Master\":%s,\"Slaves\":{"
  12. SLAVETEMPLATE="%s:{\"ip\": \"%s\", \"state\": %s, \"diff\": %s}%s"
  13. ENDTEMPLATE="}"
  14.  
  15. while read -r line
  16. do
  17. if [[ $line =~ .*connected_slaves.* ]]; then
  18. set -- $(echo $line | awk -F'[^0-9]*' '{print $2, $0}')
  19. MASTERDATA+=($1)
  20. elif [[ $line =~ .*master.* ]]; then
  21. set -- $(echo $line | awk -F'[^0-9]*' '{print $2, $0}')
  22. MASTERDATA+=($1)
  23. else
  24. set -- $(echo $line | awk -F'[^0-9]*' '{print $8, $0}')
  25. SLAVEINTS+=($1)
  26. set -- $(echo $line | awk -F'[^0-9.:]+*' '{print $3, $4}')
  27. SLAVEIPS+=("$1:$2")
  28. fi
  29. done < $LOGPATH
  30.  
  31. printf "$STARTTEMPLATE$MASTERTEMPLATE" "$DATE" ${MASTERDATA[@]}
  32. d=0
  33.  
  34. SLAVETEXT=()
  35. for i in "${SLAVEINTS[@]}"
  36. do
  37. printf "$SLAVETEMPLATE" "\"Slave$d\"" ${SLAVEIPS[$d]} $i $(expr ${MASTERDATA[1]} - $i) $([ "${#SLAVEINTS[@]}" -ne $(expr $d + 1) ] && printf "," || printf "")
  38. let d++
  39. done
  40.  
  41. printf $ENDTEMPLATE$ENDTEMPLATE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement