批量統計redis內存使用情況


需求:

由於redis上雲,需要統計一批主機上面的主機內存和redis實例內存使用情況。

 

#!/bin/bash

rm -rf redis_mem.log

ps -ef |grep redis-server |grep -v grep | awk '$NF~/cluster/{print $(NF-1);next}{print $NF}' |awk -F':' '{print $2}' >redis_ports

for i in `cat redis_ports`
do
   redis-cli  -p $i info > info.log
   used_mem=$(grep -w 'used_memory' info.log | awk -F':' '{print $2}' | sed 's/\r//')
   max_mem=$(grep -w 'maxmemory' info.log | awk -F':' '{print $2}' | sed 's/\r//')
   #role=$(grep role info.log | awk -F':' '{print $2}' | sed 's/\r//')
   printf '%10s\t %10s\t %10s\t\n' $i $used_mem $max_mem >> redis_mem.log
done

host_total_mem=$(free -g | sed -n '2p' | awk '{print $2}')
redis_used_mem=$(cat redis_mem.log | awk '{sum+=$2}END{printf "%.2f",sum/1024/1024/1024}')
redis_max_mem=$(cat redis_mem.log | awk '{sum+=$3}END{print sum/1024/1024/1024}')
redis_host_ip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | awk -F"/" '{print $1}')
mem_used_pect=$(awk 'BEGIN{printf "%.2f%",'$redis_used_mem'/'$host_total_mem'*100}')

#printf '%20s\t %10s\t %10s\t %10s\t %10s\n' 主機ip 主機物理內存 redis設置最大內存 本機redis已使用內存 redis使用內存比例 
printf '%20s\t %10s\t %10s\t %10s\t %10s\n' $redis_host_ip $host_total_mem $redis_max_mem $redis_used_mem $mem_used_pect

 假設以上腳本名test1.sh,將腳本分發到需要check的主機/tmp目錄下

  ansible -i test1  all -m copy -s -a "src=test1.sh dest=/tmp/test1.sh"

 

執行結果:ansible -i test1 all -m shell -s -a "sh /tmp/test1.sh" | grep -v 'rc' 

192.168.100.10            189            120          14.07          7.44%
192.168.100.11            189            140          16.42          8.69%
192.168.100.12            189            120          14.33          7.58%
192.168.100.13            189            120          14.31          7.57%
192.168.100.14            189            120          14.56          7.70%
192.168.100.15            189            120          14.32          7.58%
192.168.100.16            189            130          15.54          8.22%
192.168.100.17            189            130          15.76          8.34%

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM