配合redis-cli工具,編寫的shell腳本。按照規則,可以監控info頁面寫的所有數據信息
redis-cli用法:
# redis-cli -h 127.0.0.1 -p 6379 -a passwoed //連接指定的redis # redis-cli info //沒有密碼的情況下,打印本地redis-srv的狀態信息 # redis-cli info Keyspace //查看指定狀態域的信息
腳本通過執行的參數,查看所有狀態信息,匹配輸出,可用參數
-p 端口,默認是6379
-s 狀態域,info信息中’#‘開頭的那個字段,必須指定
-k 具體key,狀態域內具體的項;若該值為'dbs',則是查看當前實例有幾個庫在使用
-d 指定當前實例的庫
-o 某個庫的統計選項,可以是:keys,expires,avg_ttl
腳本如下:redis_sts.sh
#!/bin/bash
host="127.0.0.1"
passwd1="password1"
passwd2="password2"
passwd3="password3"
if [ $# -lt 4 ];then
echo "Usage: bash $0 -p [6379] -s section [-k] keys [-d] db [-o] opt"
exit 1
else
port=6379
db=''
opt=''
while [ $# -gt 0 ]
do
if [ $1 == "-p" ];then
port=$2
fi
if [ $1 == "-s" ];then
section=$2
fi
if [ $1 == "-k" ];then
key=$2
fi
if [ $1 == "-d" ];then
db=$2
fi
if [ $1 == "-o" ];then
opt=$2
fi
shift 2
done
fi
case $port in
6379)
passwd=$passwd1
;;
6380)
passwd=$passwd2
;;
6381)
passwd=$passwd3
;;
*)
passwd=""
;;
esac
if [[ $section == "Keyspace" && $key == "dbs" ]];then
cmd="/usr/local/redis/bin/redis-cli -p $port -a $passwd info Keyspace |grep '^db[0-9]\{1,2\}:*'|wc -l"
elif [[ ! -z $db && ! -z $opt ]];then
cmd="/usr/local/redis/bin/redis-cli -p $port -a $passwd info Keyspace |grep $db |tr -s ',' '\n'|grep $opt|cut -d '=' -f 2"
#cmd="/usr/local/redis/bin/redis-cli -p $port -a $passwd info Keyspace |grep $db |tr -s ',' '\n' |awk -F [=] -v akey=$opt '/$akey/{print """$NF"""}'"
else
cmd="/usr/local/redis/bin/redis-cli -p $port -a $passwd info $section|grep ${key}: |cut -d ':' -f 2"
fi
#echo $cmd
eval $cmd用法也在腳本中有說明
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。