网上看到一个监控redis内存使用量的脚本,觉得不错,记录一下
#!/bin/sh
USEDMEMORY_77=$(redis-cli -h 192.168.119.77 info memory | grep used_memory_human: | awk -F ':' '{print $2}')
USEDMEMORY_78=$(redis-cli -h 192.168.119.78 info memory | grep used_memory_human: | awk -F ':' '{print $2}')
USEDMEMORY_76=$(redis-cli -h 192.168.119.76 -p 6379 info memory | grep used_memory_human: | awk -F ':' '{print $2}')
USEDMEMORY_117=$(redis-cli -h 192.168.119.118 -p 6379 info memory | grep used_memory_human: | awk -F ':' '{print $2}')
USEDMEMORY_118=$(redis-cli -h 192.168.119.118 -p 7379 info memory | grep used_memory_human: | awk -F ':' '{print $2}')
WARN_COUNT=1
WARM_G=3
MEM_ARR=($USEDMEMORY_77 $USEDMEMORY_78 $USEDMEMORY_76 $USEDMEMORY_117 $USEDMEMORY_118)
IP_ARR=("192.168.119.77:6379" "192.168.119.78:6379" "192.168.119.76:6379" "192.168.119.118:6379" "192.168.119.118:7379")
ARR_LENGTH=${#IP_ARR[@]}
for((i=1;i<$ARR_LENGTH;i++))
do
data=${MEM_ARR[i]}
mem_c=$(echo $data |grep 'G'|wc -l)
if [ "$mem_c" -eq "$WARN_COUNT" ]
then
mem=$(echo $data | cut -f 1 -d "G" | cut -f 1 -d ".")
if [ "$mem" -ge "$WARN_G" ]
then
#这里加入提醒动作
vmessage="{\"mobile\":[\"134*********\"],\"content\": \"[WARN] redis内存使用量:$mem G , ,Node:${IP_ARR[i]}\"}"
echo $vmessage
/opt/monitor/udpclient "*********" "10086" "$vmessage"
fi
fi
done