千家信息网

redis监控脚本

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,配合redis-cli工具,编写的shell脚本。按照规则,可以监控info页面写的所有数据信息redis-cli用法:# redis-cli -h 127.0.0.1 -p 6379 -a pass
千家信息网最后更新 2025年01月19日redis监控脚本

配合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/bashhost="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 1else        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        doneficase $port in        6379)                passwd=$passwd1                ;;        6380)                passwd=$passwd2                ;;        6381)                passwd=$passwd3                ;;        *)                passwd=""                ;;esacif [[ $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 $cmdeval $cmd



用法也在脚本中有说明

0