Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- LOGPATH=slave-status.log
- /usr/local/bin/redis-cli INFO | egrep 'slave|master_repl' > $LOGPATH
- DATE=$(date);
- MASTERDATA=();
- SLAVEINTS=();
- SLAVEIPS=();
- MASTERTEMPLATE="{\"Date\":\"%s\",\"SlaveCount\":%s,\"Master\":%s,\"Slaves\":{"
- SLAVETEMPLATE="%s:{\"ip\": \"%s\", \"state\": %s, \"diff\": %s}%s"
- ENDTEMPLATE="}"
- while read -r line
- do
- if [[ $line =~ .*connected_slaves.* ]]; then
- set -- $(echo $line | awk -F'[^0-9]*' '{print $2, $0}')
- MASTERDATA+=($1)
- elif [[ $line =~ .*master.* ]]; then
- set -- $(echo $line | awk -F'[^0-9]*' '{print $2, $0}')
- MASTERDATA+=($1)
- else
- set -- $(echo $line | awk -F'[^0-9]*' '{print $8, $0}')
- SLAVEINTS+=($1)
- set -- $(echo $line | awk -F'[^0-9.:]+*' '{print $3, $4}')
- SLAVEIPS+=("$1:$2")
- fi
- done < $LOGPATH
- printf "$STARTTEMPLATE$MASTERTEMPLATE" "$DATE" ${MASTERDATA[@]}
- d=0
- SLAVETEXT=()
- for i in "${SLAVEINTS[@]}"
- do
- printf "$SLAVETEMPLATE" "\"Slave$d\"" ${SLAVEIPS[$d]} $i $(expr ${MASTERDATA[1]} - $i) $([ "${#SLAVEINTS[@]}" -ne $(expr $d + 1) ] && printf "," || printf "")
- let d++
- done
- printf $ENDTEMPLATE$ENDTEMPLATE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement