溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

redis監(jiān)控腳本

發(fā)布時間:2020-07-29 02:25:13 來源:網(wǎng)絡(luò) 閱讀:868 作者:Forver_Liu 欄目:數(shù)據(jù)庫

配合redis-cli工具,編寫的shell腳本。按照規(guī)則,可以監(jiān)控info頁面寫的所有數(shù)據(jù)信息


redis-cli用法:

# redis-cli -h 127.0.0.1 -p 6379 -a passwoed     //連接指定的redis
# redis-cli info        //沒有密碼的情況下,打印本地redis-srv的狀態(tài)信息
# redis-cli info Keyspace     //查看指定狀態(tài)域的信息


腳本通過執(zhí)行的參數(shù),查看所有狀態(tài)信息,匹配輸出,可用參數(shù)

    -p 端口,默認(rèn)是6379

    -s 狀態(tài)域,info信息中’#‘開頭的那個字段,必須指定

    -k 具體key,狀態(tài)域內(nèi)具體的項;若該值為'dbs',則是查看當(dāng)前實例有幾個庫在使用

    -d 指定當(dāng)前實例的庫

    -o 某個庫的統(tǒng)計選項,可以是: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



用法也在腳本中有說明

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI