#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#原型指标
#IT MIDWARE_REDIS_IPADDRESS|ipAddress[{$redispass}]
#IT MIDWARE_REDIS_hostname|hostname[{$redispass}]
#IT MIDWARE_REDIS_VERSION|version[{$redispass}]
#IT MIDWARE_REDIS_INSTANCENAME|instancename[{$redispass}]
#IT MIDWARE_REDIS_PID|pid[{$redispass}]
#IT MIDWARE_REDIS_INSTALLDIR|install_dir[{$redispass}]
#IT MIDWARE_REDIS_CONFDIR|conf_dir[{$redispass}]
#IT MIDWARE_REDIS_USER|user[{$redispass}]
#IT MIDWARE_REDIS_CONFFILE|conf_file[{$redispass}]
#IT MIDWARE_REDIS_FREE|free[{$redispass}]
#IT MIDWARE_REDIS_PIDFILE|pid_file[{$redispass}]
#IT MIDWARE_REDIS_DATABASENUM|database_num[{$redispass}]
#IT MIDWARE_REDIS_MEMINFO|meminfo[{$redispass}]
#IT MIDWARE_REDIS_TCPKEEPALIVE|tcp_keepalive[{$redispass}]
#IT MIDWARE_REDIS_DAEMONIZE|daemonize[{$redispass}]
#IT MIDWARE_REDIS_LOGFILE|logfile[{$redispass}]
#IT MIDWARE_REDIS_BIND|bind[{$redispass}]
#IT MIDWARE_REDIS_APPENDONLY|appendonly[{$redispass}]
#IT MIDWARE_REDIS_SAVE|save[{$redispass}]
#IT MIDWARE_REDIS_VAL|val[{$redispass}]
#IT MIDWARE_REDIS_appendfsync|appendfsync[{$redispass}]
#IT MIDWARE_REDIS_appendfilename|appendfilename[{$redispass}]
#IT MIDWARE_REDIS_dbfilename|dbfilename[{$redispass}]
#IT MIDWARE_REDIS_timeout|timeout[{$redispass}]
#IT MIDWARE_REDIS_maxclients|maxclients[{$redispass}]
#IT MIDWARE_REDIS_clusterenabled|clusterenabled[{$redispass}]
#IT MIDWARE_REDIS_PORT|port[{$redispass}]
#IT MIDWARE_REDIS_processpath|processpath[{$redispass}]
#IT MIDWARE_REDIS_datapath|datapath[{$redispass}]
#IT_END
shname=$(basename "$0")
ScriptName="_X(g=$shname,p=cmdb,t=script,f=0)"
redispass="${1}"
tmpdir="/tmp/redis_collect_${$}"
cleanup() {
rm -rf "${tmpdir}"
}
trap cleanup EXIT
mkdir -p "${tmpdir}"
# 获取Redis进程信息
get_redis_process() {
pgrep -af "redis-server" | grep -vE "redis-(cli|check|bench)" | head -1
}
# 基础信息获取
redis_process=$(get_redis_process)
[ -z "$redis_process" ] && echo "ERROR: Redis process not found!" >&2 && exit 1
pid=$(awk '{print $1}' <<< "$redis_process")
exec_cmd=$(awk '{for(i=2;i<=NF;i++) if($i ~ /^redis-server/) {print $i; exit}}' <<< "$redis_process")
install_dir=$(readlink -f /proc/"$pid"/exe | sed 's/\/bin\/redis-server$//')
[ -z "$install_dir" ] && install_dir=$(find / -name "redis-server" -exec dirname {} \; 2>/dev/null |awk -F'/bin' '{print $1}'| head -1)
port=$(awk '{for(i=1;i<=NF;i++) if($i ~ /:[0-9]+$/) {print $i; exit}}' <<< "$redis_process" | cut -d: -f2)
# 构建redis-cli命令基础
redis_cli_cmd() {
local cmd="${install_dir}/bin/redis-cli -p $port"
[ -n "$redispass" ] && cmd+=" -a $redispass --no-auth-warning"
echo "$cmd"
}
# 配置获取函数
config_get() {
local config_name="$1"
local redis_cmd=$(redis_cli_cmd)
$redis_cmd CONFIG GET "$config_name" 2>"${tmpdir}/error.log" | \
awk 'BEGIN{RS="\\r?\\n";ORS="";flag=0;IGNORECASE=1}
{if(flag==1) {print $0; exit}
if(tolower($1) == tolower(config_name)) {flag=1}}' config_name="$config_name"
}
# 获取所有配置项(带密码验证检查)
check_auth() {
local redis_cmd=$(redis_cli_cmd)
$redis_cmd PING 2>&1 | grep -q "PONG"
}
if check_auth; then
auth_valid=true
else
auth_valid=false
echo "WARNING: Redis authentication failed or not required" >&2
fi
# 获取配置信息(仅在认证有效时)
conf_file=""
if $auth_valid; then
conf_file=$(config_get "config_file")
[ -z "$conf_file" ] && conf_file=$(awk -F: '/^config_file/ {print $2}' <<< "$(redis_cli_cmd) INFO ALL 2>&1" | tr -d '\r')
fi
# 多维度信息采集
hostname=$(hostname)
ip=$(hostname -I 2>/dev/null | tr ' ' ',' | sed 's/,$//')
[ -z "$ip" ] && ip=$(ip addr show 2>/dev/null | grep -w inet | grep -vE '127.0.0.1|inet6' | awk '{print $2}' | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
# 配置参数获取(兼容无密码情况)
declare -A redis_config=(
["daemonize"]=$($auth_valid && config_get "daemonize")
["logfile"]=$($auth_valid && config_get "logfile")
["bind"]=$($auth_valid && config_get "bind" | tr ' ' ',')
["appendonly"]=$($auth_valid && config_get "appendonly")
["save"]=$($auth_valid && config_get "save" | tr ' ' ',')
["appendfsync"]=$($auth_valid && config_get "appendfsync")
["appendfilename"]=$($auth_valid && config_get "appendfilename")
["dbfilename"]=$($auth_valid && config_get "dbfilename")
["timeout"]=$($auth_valid && config_get "timeout")
["maxclients"]=$($auth_valid && config_get "maxclients")
["cluster-enabled"]=$($auth_valid && config_get "cluster-enabled")
["dir"]=$($auth_valid && config_get "dir")
["pidfile"]=$($auth_valid && config_get "pidfile")
["tcp-keepalive"]=$($auth_valid && config_get "tcp-keepalive")
["databases"]=$($auth_valid && config_get "databases")
)
# 系统信息采集
user=$(stat -c "%U" "/proc/$pid" 2>/dev/null || ps -o user= -p "$pid" | tr -d ' ')
free=$(free -m | awk '/Mem:/ {print $2}')
meminfo=$(grep -m1 DirectMap2M /proc/meminfo | awk '{print $2}')
val=$(awk "BEGIN {printf \"%.2f\", ${meminfo}/1024/1024}")GB
# 处理路径信息
conf_dir=$(dirname "$conf_file")
[ "$conf_dir" = "." ] && conf_dir="$install_dir"
processpath=$(readlink -f "/proc/$pid/cwd")
version=$("$install_dir/bin/redis-server" --version 2>&1 | grep -oE "v=([0-9]+\.){1,}[0-9]+"| head -1 | cut -d'=' -f2)
# 输出结果
echo COL_DETAIL_START:
echo "type[$ScriptName,$redispass]|+|redis"
echo "ipAddress[$ScriptName,$redispass]|+|$ip"
echo "hostname[$ScriptName,$redispass]|+|$hostname"
echo "version[$ScriptName,$redispass]|+|redis-$version"
echo "instancename[$ScriptName,$redispass]|+|redis_${port}"
echo "pid[$ScriptName,$redispass]|+|$pid"
echo "install_dir[$ScriptName,$redispass]|+|$install_dir"
echo "conf_dir[$ScriptName,$redispass]|+|${conf_dir}"
echo "user[$ScriptName,$redispass]|+|$user"
echo "conf_file[$ScriptName,$redispass]|+|${conf_file}"
echo "free[$ScriptName,$redispass]|+|$free"
echo "pid_file[$ScriptName,$redispass]|+|${redis_config[pidfile]}"
echo "database_num[$ScriptName,$redispass]|+|${redis_config[databases]}"
echo "meminfo[$ScriptName,$redispass]|+|$meminfo"
echo "val[$ScriptName,$redispass]|+|${val}"
echo "tcp_keepalive[$ScriptName,$redispass]|+|${redis_config[tcp-keepalive]}"
echo "daemonize[$ScriptName,$redispass]|+|${redis_config[daemonize]}"
echo "logfile[$ScriptName,$redispass]|+|${redis_config[logfile]}"
echo "save[$ScriptName,$redispass]|+|${redis_config[save]}"
echo "bind[$ScriptName,$redispass]|+|${redis_config[bind]}"
echo "appendonly[$ScriptName,$redispass]|+|${redis_config[appendonly]}"
echo "appendfsync[$ScriptName,$redispass]|+|${redis_config[appendfsync]}"
echo "appendfilename[$ScriptName,$redispass]|+|${redis_config[appendfilename]}"
echo "dbfilename[$ScriptName,$redispass]|+|${redis_config[dbfilename]}"
echo "timeout[$ScriptName,$redispass]|+|${redis_config[timeout]}"
echo "maxclients[$ScriptName,$redispass]|+|${redis_config[maxclients]}"
echo "clusterenabled[$ScriptName,$redispass]|+|${redis_config[cluster-enabled]}"
echo "port[$ScriptName,$redispass]|+|$port"
echo "processpath[$ScriptName,$redispass]|+|$processpath"
echo "datapath[$ScriptName,$redispass]|+|${redis_config[dir]}"
echo COL_DETAIL_END:
exit 0
再10.14.1.232服务器执行结果如下:
[root@localhost ~]# sh nopass_redis.sh
WARNING: Redis authentication failed or not required
COL_DETAIL_START:
type[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|redis
ipAddress[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|10.14.1.232
hostname[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|localhost.localdomain
version[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|redis-7.2.3
instancename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|redis_16379
pid[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|25008
install_dir[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis
conf_dir[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis
user[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|root
conf_file[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
free[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|15884
pid_file[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
database_num[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
meminfo[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|5050368
val[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|4.82GB
tcp_keepalive[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
daemonize[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
logfile[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
save[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
bind[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
appendonly[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
appendfsync[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
appendfilename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
dbfilename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
timeout[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
maxclients[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
clusterenabled[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
port[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|16379
processpath[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis/cluster
datapath[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),]|+|
COL_DETAIL_END:
[root@localhost ~]# sh nopass_redis.sh "Kw&nMSMYju%2v5NhnV"
COL_DETAIL_START:
type[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis
ipAddress[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|10.14.1.232
hostname[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|localhost.localdomain
version[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis-7.2.3
instancename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis_16379
pid[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|25008
install_dir[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
conf_dir[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
user[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|root
conf_file[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|
free[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|15884
pid_file[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/var/run/redis_16379.pid
database_num[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|1
meminfo[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|5050368
val[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|4.82GB
tcp_keepalive[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|300
daemonize[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|yes
logfile[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis/cluster/log/16379.log
save[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|3600,1,300,100,60,10000
bind[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|0.0.0.0
appendonly[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|no
appendfsync[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|everysec
appendfilename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|appendonly.aof
dbfilename[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|dump_16379.rdb
timeout[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|0
maxclients[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|10000
clusterenabled[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|yes
port[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|16379
processpath[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis/cluster
datapath[_X(g=nopass_redis.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis/cluster
COL_DETAIL_END:
---补充最大内存取值到脚本中---------20250512-------------------------------
#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#原型指标
#IT MIDWARE_REDIS_IPADDRESS|ipAddress[{$redispass}]
#IT MIDWARE_REDIS_hostname|hostname[{$redispass}]
#IT MIDWARE_REDIS_VERSION|version[{$redispass}]
#IT MIDWARE_REDIS_INSTANCENAME|instancename[{$redispass}]
#IT MIDWARE_REDIS_PID|pid[{$redispass}]
#IT MIDWARE_REDIS_INSTALLDIR|install_dir[{$redispass}]
#IT MIDWARE_REDIS_CONFDIR|conf_dir[{$redispass}]
#IT MIDWARE_REDIS_USER|user[{$redispass}]
#IT MIDWARE_REDIS_CONFFILE|conf_file[{$redispass}]
#IT MIDWARE_REDIS_FREE|free[{$redispass}]
#IT MIDWARE_REDIS_PIDFILE|pid_file[{$redispass}]
#IT MIDWARE_REDIS_DATABASENUM|database_num[{$redispass}]
#IT MIDWARE_REDIS_MEMINFO|meminfo[{$redispass}]
#IT MIDWARE_REDIS_TCPKEEPALIVE|tcp_keepalive[{$redispass}]
#IT MIDWARE_REDIS_DAEMONIZE|daemonize[{$redispass}]
#IT MIDWARE_REDIS_LOGFILE|logfile[{$redispass}]
#IT MIDWARE_REDIS_BIND|bind[{$redispass}]
#IT MIDWARE_REDIS_APPENDONLY|appendonly[{$redispass}]
#IT MIDWARE_REDIS_SAVE|save[{$redispass}]
#IT MIDWARE_REDIS_VAL|val[{$redispass}]
#IT MIDWARE_REDIS_appendfsync|appendfsync[{$redispass}]
#IT MIDWARE_REDIS_appendfilename|appendfilename[{$redispass}]
#IT MIDWARE_REDIS_dbfilename|dbfilename[{$redispass}]
#IT MIDWARE_REDIS_timeout|timeout[{$redispass}]
#IT MIDWARE_REDIS_maxclients|maxclients[{$redispass}]
#IT MIDWARE_REDIS_clusterenabled|clusterenabled[{$redispass}]
#IT MIDWARE_REDIS_PORT|port[{$redispass}]
#IT MIDWARE_REDIS_processpath|processpath[{$redispass}]
#IT MIDWARE_REDIS_datapath|datapath[{$redispass}]
#新增的最大内存指标
#IT MIDWARE_REDIS_maxmemory|maxmemory[{$redispass}]
#IT_END
shname=$(basename "$0")
ScriptName="_X(g=$shname,p=cmdb,t=script,f=0)"
redispass="${1}"
tmpdir="/tmp/redis_collect_${$}"
cleanup() {
rm -rf "${tmpdir}"
}
trap cleanup EXIT
mkdir -p "${tmpdir}"
# 获取Redis进程信息
get_redis_process() {
pgrep -af "redis-server" | grep -vE "redis-(cli|check|bench)" | head -1
}
# 基础信息获取
redis_process=$(get_redis_process)
[ -z "$redis_process" ] && echo "ERROR: Redis process not found!" >&2 && exit 1
pid=$(awk '{print $1}' <<< "$redis_process")
exec_cmd=$(awk '{for(i=2;i<=NF;i++) if($i ~ /^redis-server/) {print $i; exit}}' <<< "$redis_process")
install_dir=$(readlink -f /proc/"$pid"/exe | sed 's/\/bin\/redis-server$//')
[ -z "$install_dir" ] && install_dir=$(find / -name "redis-server" -exec dirname {} \; 2>/dev/null |awk -F'/bin' '{print $1}'| head -1)
port=$(awk '{for(i=1;i<=NF;i++) if($i ~ /:[0-9]+$/) {print $i; exit}}' <<< "$redis_process" | cut -d: -f2)
# 构建redis-cli命令基础
redis_cli_cmd() {
local cmd="${install_dir}/bin/redis-cli -p $port"
[ -n "$redispass" ] && cmd+=" -a $redispass --no-auth-warning"
echo "$cmd"
}
# 配置获取函数
config_get() {
local config_name="$1"
local redis_cmd=$(redis_cli_cmd)
$redis_cmd CONFIG GET "$config_name" 2>"${tmpdir}/error.log" | \
awk 'BEGIN{RS="\\r?\\n";ORS="";flag=0;IGNORECASE=1}
{if(flag==1) {print $0; exit}
if(tolower($1) == tolower(config_name)) {flag=1}}' config_name="$config_name"
}
# 获取所有配置项(带密码验证检查)
check_auth() {
local redis_cmd=$(redis_cli_cmd)
$redis_cmd PING 2>&1 | grep -q "PONG"
}
if check_auth; then
auth_valid=true
else
auth_valid=false
echo "WARNING: Redis authentication failed or not required" >&2
fi
# 获取配置信息(仅在认证有效时)
conf_file=""
if $auth_valid; then
conf_file=$(config_get "config_file")
[ -z "$conf_file" ] && conf_file=$(awk -F: '/^config_file/ {print $2}' <<< "$(redis_cli_cmd) INFO ALL 2>&1" | tr -d '\r')
fi
# 多维度信息采集
hostname=$(hostname)
ip=$(hostname -I 2>/dev/null | tr ' ' ',' | sed 's/,$//')
[ -z "$ip" ] && ip=$(ip addr show 2>/dev/null | grep -w inet | grep -vE '127.0.0.1|inet6' | awk '{print $2}' | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
# 配置参数获取(兼容无密码情况)
declare -A redis_config=(
["daemonize"]=$($auth_valid && config_get "daemonize")
["logfile"]=$($auth_valid && config_get "logfile")
["bind"]=$($auth_valid && config_get "bind" | tr ' ' ',')
["appendonly"]=$($auth_valid && config_get "appendonly")
["save"]=$($auth_valid && config_get "save" | tr ' ' ',')
["appendfsync"]=$($auth_valid && config_get "appendfsync")
["appendfilename"]=$($auth_valid && config_get "appendfilename")
["dbfilename"]=$($auth_valid && config_get "dbfilename")
["timeout"]=$($auth_valid && config_get "timeout")
["maxclients"]=$($auth_valid && config_get "maxclients")
# 新增maxmemory配置项
["maxmemory"]=$($auth_valid && config_get "maxmemory")
["cluster-enabled"]=$($auth_valid && config_get "cluster-enabled")
["dir"]=$($auth_valid && config_get "dir")
["pidfile"]=$($auth_valid && config_get "pidfile")
["tcp-keepalive"]=$($auth_valid && config_get "tcp-keepalive")
["databases"]=$($auth_valid && config_get "databases")
)
# 系统信息采集
user=$(stat -c "%U" "/proc/$pid" 2>/dev/null || ps -o user= -p "$pid" | tr -d ' ')
free=$(free -m | awk '/Mem:/ {print $2}')
meminfo=$(grep -m1 DirectMap2M /proc/meminfo | awk '{print $2}')
val=$(awk "BEGIN {printf \"%.2f\", ${meminfo}/1024/1024}")GB
# 处理路径信息
conf_dir=$(dirname "$conf_file")
[ "$conf_dir" = "." ] && conf_dir="$install_dir"
processpath=$(readlink -f "/proc/$pid/cwd")
version=$("$install_dir/bin/redis-server" --version 2>&1 | grep -oE "v=([0-9]+\.){1,}[0-9]+"| head -1 | cut -d'=' -f2)
# 输出结果
echo COL_DETAIL_START:
echo "type[$ScriptName,$redispass]|+|redis"
echo "ipAddress[$ScriptName,$redispass]|+|$ip"
echo "hostname[$ScriptName,$redispass]|+|$hostname"
echo "version[$ScriptName,$redispass]|+|redis-$version"
echo "instancename[$ScriptName,$redispass]|+|redis_${port}"
echo "pid[$ScriptName,$redispass]|+|$pid"
echo "install_dir[$ScriptName,$redispass]|+|$install_dir"
echo "conf_dir[$ScriptName,$redispass]|+|${conf_dir}"
echo "user[$ScriptName,$redispass]|+|$user"
echo "conf_file[$ScriptName,$redispass]|+|${conf_file}"
echo "free[$ScriptName,$redispass]|+|$free"
echo "pid_file[$ScriptName,$redispass]|+|${redis_config[pidfile]}"
echo "database_num[$ScriptName,$redispass]|+|${redis_config[databases]}"
echo "meminfo[$ScriptName,$redispass]|+|$meminfo"
echo "val[$ScriptName,$redispass]|+|${val}"
echo "tcp_keepalive[$ScriptName,$redispass]|+|${redis_config[tcp-keepalive]}"
echo "daemonize[$ScriptName,$redispass]|+|${redis_config[daemonize]}"
echo "logfile[$ScriptName,$redispass]|+|${redis_config[logfile]}"
echo "save[$ScriptName,$redispass]|+|${redis_config[save]}"
echo "bind[$ScriptName,$redispass]|+|${redis_config[bind]}"
echo "appendonly[$ScriptName,$redispass]|+|${redis_config[appendonly]}"
echo "appendfsync[$ScriptName,$redispass]|+|${redis_config[appendfsync]}"
echo "appendfilename[$ScriptName,$redispass]|+|${redis_config[appendfilename]}"
echo "dbfilename[$ScriptName,$redispass]|+|${redis_config[dbfilename]}"
echo "timeout[$ScriptName,$redispass]|+|${redis_config[timeout]}"
echo "maxclients[$ScriptName,$redispass]|+|${redis_config[maxclients]}"
# 新增的输出行
echo "maxmemory[$ScriptName,$redispass]|+|${redis_config[maxmemory]}"
echo "clusterenabled[$ScriptName,$redispass]|+|${redis_config[cluster-enabled]}"
echo "port[$ScriptName,$redispass]|+|$port"
echo "processpath[$ScriptName,$redispass]|+|$processpath"
echo "datapath[$ScriptName,$redispass]|+|${redis_config[dir]}"
echo COL_DETAIL_END:
exit 0
10.14.1.99执行结果如下:
[root@omptest99 ~]# sh redis_20250512.sh
WARNING: Redis authentication failed or not required
COL_DETAIL_START:
type[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|redis
ipAddress[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|10.14.1.99
hostname[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|omptest99
version[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|redis-7.2.3
instancename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|redis_16379
pid[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|487
install_dir[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis
conf_dir[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis
user[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|root
conf_file[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
free[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|15884
pid_file[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
database_num[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
meminfo[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|5054464
val[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|4.82GB
tcp_keepalive[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
daemonize[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
logfile[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
save[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
bind[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
appendonly[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
appendfsync[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
appendfilename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
dbfilename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
timeout[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
maxclients[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
maxmemory[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
clusterenabled[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
port[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|16379
processpath[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|/home/ntciom/redis
datapath[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),]|+|
COL_DETAIL_END:
[root@omptest99 ~]# sh redis_20250512.sh "Kw&nMSMYju%2v5NhnV"
COL_DETAIL_START:
type[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis
ipAddress[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|10.14.1.99
hostname[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|omptest99
version[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis-7.2.3
instancename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|redis_16379
pid[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|487
install_dir[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
conf_dir[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
user[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|root
conf_file[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|
free[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|15884
pid_file[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/var/run/redis_16379.pid
database_num[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|16
meminfo[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|5054464
val[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|4.82GB
tcp_keepalive[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|300
daemonize[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|yes
logfile[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|
save[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|3600,1,300,100,60,10000
bind[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|*,-::*
appendonly[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|no
appendfsync[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|everysec
appendfilename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|appendonly.aof
dbfilename[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|dump.rdb
timeout[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|0
maxclients[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|10000
maxmemory[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|0
clusterenabled[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|no
port[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|16379
processpath[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
datapath[_X(g=redis_20250512.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV]|+|/home/ntciom/redis
COL_DETAIL_END:
-----20250520----陶京修改版本脚本----且同步109环境中----COLT_CMDB_linux_redis_20250520.sh
#!/bin/bash
#IT_BEGIN
#IT_TYPE=3
#IT MIDWARE_REDIS_DISC|discovery.redis[disc]
#原型指标
#IT MIDWARE_REDIS_IPADDRESS|ipAddress[{$redispass},{#port}]
#IT MIDWARE_REDIS_hostname|hostname[{$redispass},{#port}]
#IT MIDWARE_REDIS_VERSION|version[{$redispass},{#port}]
#IT MIDWARE_REDIS_RUNMode|redisMode[{$redispass},{#port}]
#IT MIDWARE_REDIS_NODEType|nodeType[{$redispass},{#port}]
#IT MIDWARE_REDIS_NODES|nodes[{$redispass},{#port}]
#IT MIDWARE_REDIS_INSTANCENAME|instancename[{$redispass},{#port}]
#IT MIDWARE_REDIS_PID|pid[{$redispass},{#port}]
#IT MIDWARE_REDIS_INSTALLDIR|install_dir[{$redispass},{#port}]
#IT MIDWARE_REDIS_CONFDIR|conf_dir[{$redispass},{#port}]
#IT MIDWARE_REDIS_USER|user[{$redispass},{#port}]
#IT MIDWARE_REDIS_CONFFILE|conf_file[{$redispass},{#port}]
#IT MIDWARE_REDIS_FREE|free[{$redispass},{#port}]
#IT MIDWARE_REDIS_PIDFILE|pid_file[{$redispass},{#port}]
#IT MIDWARE_REDIS_DATABASENUM|database_num[{$redispass},{#port}]
#IT MIDWARE_REDIS_MEMINFO|meminfo[{$redispass},{#port}]
#IT MIDWARE_REDIS_TCPKEEPALIVE|tcp_keepalive[{$redispass},{#port}]
#IT MIDWARE_REDIS_DAEMONIZE|daemonize[{$redispass},{#port}]
#IT MIDWARE_REDIS_LOGFILE|logfile[{$redispass},{#port}]
#IT MIDWARE_REDIS_BIND|bind[{$redispass},{#port}]
#IT MIDWARE_REDIS_APPENDONLY|appendonly[{$redispass},{#port}]
#IT MIDWARE_REDIS_SAVE|save[{$redispass},{#port}]
#IT MIDWARE_REDIS_VAL|val[{$redispass},{#port}]
#IT MIDWARE_REDIS_appendfsync|appendfsync[{$redispass},{#port}]
#IT MIDWARE_REDIS_appendfilename|appendfilename[{$redispass},{#port}]
#IT MIDWARE_REDIS_dbfilename|dbfilename[{$redispass},{#port}]
#IT MIDWARE_REDIS_timeout|timeout[{$redispass},{#port}]
#IT MIDWARE_REDIS_maxclients|maxclients[{$redispass},{#port}]
#IT MIDWARE_REDIS_clusterenabled|clusterenabled[{$redispass},{#port}]
#IT MIDWARE_REDIS_PORT|port[{$redispass},{#port}]
#IT MIDWARE_REDIS_processpath|processpath[{$redispass},{#port}]
#IT MIDWARE_REDIS_datapath|datapath[{$redispass},{#port}]
#新增的最大内存指标
#IT MIDWARE_REDIS_maxmemory|maxmemory[{$redispass},{#port}]
#IT_END
shname=$(basename "$0")
ScriptName="_X(g=$shname,p=cmdb,t=script,f=0)"
redispass="${1}"
tmpdir="/tmp/redis_collect_${$}"
if [ "$1" = 'disc' ];then
ps aux|grep redis-server|grep -v grep|awk -F"0:" '{print $2}'|awk '{print $1}'|while read port
do
echo "{#port}=$port"
done
exit 0
fi
# 2. 增强IP地址获取(修复语法错误)
get_ip() {
if [ -n "$AGENT_HOME" ];then
ip=`grep "^ListenAddr=" $AGENT_HOME/config/conf/agent.conf|awk -F= '{print $2}'`
if [ -n "$ip" ] && [ "$ip" != "127.0.0.1" ];then
echo $ip
return
fi
fi
ip_list=""
# 优先使用netstat
if [ -x /usr/bin/netstat ]; then
ip_list=$(netstat -in 2>/dev/null | awk '!/^lo/ && /en/ {getline; print $NF}' | sort -u | tr '\n' ',')
fi
# 备用方案使用ifconfig
if [ -z "$ip_list" ] && [ -x /usr/sbin/ifconfig ]; then
ip_list=$(ifconfig -a 2>/dev/null | awk '/inet / && !/127\.|::/ {print $2}' | tr '\n' ',')
fi
# 最后尝试hostname
if [ -z "$ip_list" ]; then
ip_list=$(hostname -i 2>/dev/null | tr ' ' ',')
fi
echo "${ip_list%,}" | cut -d',' -f1 # 返回第一个有效IP
}
cleanup() {
rm -rf "${tmpdir}"
}
# 构建redis-cli命令基础
redis_cli_cmd() {
local cmd="${install_dir}/bin/redis-cli -p $port"
[ -n "$redispass" ] && cmd+=" -a $redispass --no-auth-warning"
echo "$cmd"
}
# 配置获取函数
config_get() {
local config_name="$1"
local redis_cmd=$(redis_cli_cmd)
$redis_cmd CONFIG GET "$config_name" 2>"${tmpdir}/error.log" | \
awk 'BEGIN{RS="\\r?\\n";ORS="";flag=0;IGNORECASE=1}
{if(flag==1) {print $0; exit}
if(tolower($1) == tolower(config_name)) {flag=1}}' config_name="$config_name"
}
# 获取所有配置项(带密码验证检查)
check_auth() {
local redis_cmd=$(redis_cli_cmd)
$redis_cmd PING 2>&1 | grep -q "PONG"
}
trap cleanup EXIT
mkdir -p "${tmpdir}"
# 获取Redis进程信息
get_redis_process() {
pgrep -af "redis-server" |grep ":$1 "| grep -vE "redis-(cli|check|bench)" | head -1
}
if [ $# -eq 1 ];then
#采集所有实例
ps aux|grep redis-server|grep -v grep|awk -F"0:" '{print $2}'|awk '{print $1}'|while read port
do
ports="$port $ports"
echo $ports >/tmp/$$.out
done
ports=`cat /tmp/$$.out`
else
ports=$2
fi
echo COL_DETAIL_START:
for port in $ports;do
# 基础信息获取
redis_process=$(get_redis_process $port)
[ -z "$redis_process" ] && echo "ERROR: Redis process not found!" >&2 && exit 1
pid=$(awk '{print $1}' <<< "$redis_process")
exec_cmd=$(awk '{for(i=2;i<=NF;i++) if($i ~ /^redis-server/) {print $i; exit}}' <<< "$redis_process")
install_dir=$(readlink -f /proc/"$pid"/exe | sed 's/\/bin\/redis-server$//')
[ -z "$install_dir" ] && install_dir=$(find / -name "redis-server" -exec dirname {} \; 2>/dev/null |awk -F'/bin' '{print $1}'| head -1)
port=$(awk '{for(i=1;i<=NF;i++) if($i ~ /:[0-9]+$/) {print $i; exit}}' <<< "$redis_process" | cut -d: -f2)
if check_auth; then
auth_valid=true
else
auth_valid=false
echo "WARNING: Redis authentication failed or not required" >&2
fi
# 获取配置信息(仅在认证有效时)
conf_file=""
# if $auth_valid; then
# conf_file=$(config_get "config_file")
# [ -z "$conf_file" ] && conf_file=$(awk -F: '/^config_file/ {print $2}' <<< "$(redis_cli_cmd) INFO ALL 2>&1" | tr -d '\r')
# fi
#获取server信息
# Server
#redis_version:7.2.3
#redis_git_sha1:00000000
#redis_git_dirty:0
#redis_build_id:51383de96c6e8561
#redis_mode:cluster
#os:Linux 3.10.0-1160.el7.x86_64 x86_64
#arch_bits:64
#monotonic_clock:POSIX clock_gettime
#multiplexing_api:epoll
#atomicvar_api:atomic-builtin
#gcc_version:4.8.5
#process_id:25008
#process_supervised:no
#run_id:d3fcee799b82dfe4af9d546da3f9bfb6da31a03e
#tcp_port:16379
#server_time_usec:1747730515903205
#uptime_in_seconds:4166817
#uptime_in_days:48
#hz:10
#configured_hz:10
#lru_clock:2900051
#executable:/home/ntciom/redis/bin/redis-server
#config_file:/home/ntciom/redis/cluster/redis-16379.conf
#io_threads_active:0
#listener0:name=tcp,bind=0.0.0.0,port=16379
${install_dir}/bin/redis-cli -p $port -a "$redispass" --no-auth-warning INFO server >/tmp/$$.out
error=`cat /tmp/$$.out|grep "^NOAUTH"|wc -l`
if [ $error -gt 0 ];then
echo "WARNING: Redis authentication failed or not required"
exit 151
fi
conf_file=`grep "^config_file" /tmp/$$.out|awk -F: '{print $2}'`
redis_mode=`grep "^redis_mode" /tmp/$$.out|awk -F: '{print $2}'`
version=`grep "^redis_version" /tmp/$$.out|awk -F: '{print $2}'`
#节点信息
${install_dir}/bin/redis-cli -p $port -a "$redispass" --no-auth-warning CLUSTER nodes|while read line
do
node=`echo $line|awk '{print $2}'|awk -F"@" '{print $1}'`
nodes="$node,$nodes"
echo $nodes > /tmp/$$.out
me=`echo $line|grep myself|wc -l`
if [ $me -eq 1 ];then
master=`echo $line|grep master|wc -l`
if [ $master -eq 1 ];then
echo "nodeType[$ScriptName,$redispass,$port]|+|master"
else
echo "nodeType[$ScriptName,$redispass,$port]|+|slave"
fi
fi
done
nodes=`cat /tmp/$$.out|sed 's/,$//g'`
echo "nodes[$ScriptName,$redispass,$port]|+|$nodes"
# 多维度信息采集
hostname=$(hostname)
ip=$(get_ip)
[ -z "$ip" ] && ip=$(ip addr show 2>/dev/null | grep -w inet | grep -vE '127.0.0.1|inet6' | awk '{print $2}' | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
# 配置参数获取(兼容无密码情况)
declare -A redis_config=(
["daemonize"]=$($auth_valid && config_get "daemonize")
["logfile"]=$($auth_valid && config_get "logfile")
["bind"]=$($auth_valid && config_get "bind" | tr ' ' ',')
["appendonly"]=$($auth_valid && config_get "appendonly")
["save"]=$($auth_valid && config_get "save" | tr ' ' ',')
["appendfsync"]=$($auth_valid && config_get "appendfsync")
["appendfilename"]=$($auth_valid && config_get "appendfilename")
["dbfilename"]=$($auth_valid && config_get "dbfilename")
["timeout"]=$($auth_valid && config_get "timeout")
["maxclients"]=$($auth_valid && config_get "maxclients")
# 新增maxmemory配置项
["maxmemory"]=$($auth_valid && config_get "maxmemory")
["cluster-enabled"]=$($auth_valid && config_get "cluster-enabled")
["dir"]=$($auth_valid && config_get "dir")
["pidfile"]=$($auth_valid && config_get "pidfile")
["tcp-keepalive"]=$($auth_valid && config_get "tcp-keepalive")
["databases"]=$($auth_valid && config_get "databases")
)
# 系统信息采集
user=$(stat -c "%U" "/proc/$pid" 2>/dev/null || ps -o user= -p "$pid" | tr -d ' ')
free=$(free -m | awk '/Mem:/ {print $2}')
meminfo=$(grep -m1 DirectMap2M /proc/meminfo | awk '{print $2}')
val=$(awk "BEGIN {printf \"%.2f\", ${meminfo}/1024/1024}")GB
# 处理路径信息
conf_dir=$(dirname "$conf_file")
[ "$conf_dir" = "." ] && conf_dir="$install_dir"
processpath=$(readlink -f "/proc/$pid/cwd")
# version=$("$install_dir/bin/redis-server" --version 2>&1 | grep -oE "v=([0-9]+\.){1,}[0-9]+"| head -1 | cut -d'=' -f2)
# 输出结果
echo "type[$ScriptName,$redispass,$port]|+|redis"
echo "ipAddress[$ScriptName,$redispass,$port]|+|$ip"
echo "hostname[$ScriptName,$redispass,$port]|+|$hostname"
echo "version[$ScriptName,$redispass,$port]|+|redis-$version"
echo "instancename[$ScriptName,$redispass,$port]|+|redis_${port}"
echo "pid[$ScriptName,$redispass,$port]|+|$pid"
echo "install_dir[$ScriptName,$redispass,$port]|+|$install_dir"
echo "conf_dir[$ScriptName,$redispass,$port]|+|${conf_dir}"
echo "user[$ScriptName,$redispass,$port]|+|$user"
echo "conf_file[$ScriptName,$redispass,$port]|+|${conf_file}"
echo "free[$ScriptName,$redispass,$port]|+|$free"
echo "pid_file[$ScriptName,$redispass,$port]|+|${redis_config[pidfile]}"
echo "database_num[$ScriptName,$redispass,$port]|+|${redis_config[databases]}"
echo "meminfo[$ScriptName,$redispass,$port]|+|$meminfo"
echo "val[$ScriptName,$redispass,$port]|+|${val}"
echo "tcp_keepalive[$ScriptName,$redispass,$port]|+|${redis_config[tcp-keepalive]}"
echo "daemonize[$ScriptName,$redispass,$port]|+|${redis_config[daemonize]}"
echo "logfile[$ScriptName,$redispass,$port]|+|${redis_config[logfile]}"
echo "save[$ScriptName,$redispass,$port]|+|${redis_config[save]}"
echo "bind[$ScriptName,$redispass,$port]|+|${redis_config[bind]}"
echo "appendonly[$ScriptName,$redispass,$port]|+|${redis_config[appendonly]}"
echo "appendfsync[$ScriptName,$redispass,$port]|+|${redis_config[appendfsync]}"
echo "appendfilename[$ScriptName,$redispass,$port]|+|${redis_config[appendfilename]}"
echo "dbfilename[$ScriptName,$redispass,$port]|+|${redis_config[dbfilename]}"
echo "timeout[$ScriptName,$redispass,$port]|+|${redis_config[timeout]}"
echo "maxclients[$ScriptName,$redispass,$port]|+|${redis_config[maxclients]}"
# 新增的输出行
echo "maxmemory[$ScriptName,$redispass,$port]|+|${redis_config[maxmemory]}"
echo "clusterenabled[$ScriptName,$redispass,$port]|+|${redis_config[cluster-enabled]}"
echo "port[$ScriptName,$redispass,$port]|+|$port"
echo "processpath[$ScriptName,$redispass,$port]|+|$processpath"
echo "datapath[$ScriptName,$redispass,$port]|+|${redis_config[dir]}"
echo "redisMode[$ScriptName,$redispass,$port]|+|$redis_mode"
done
echo COL_DETAIL_END:
exit 0
10.14.1.99服务器执行结果如下:
[root@omptest99 ~]# sh COLT_CMDB_linux_redis_20250520.sh "Kw&nMSMYju%2v5NhnV"
COL_DETAIL_START:
nodeType[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|slave
nodes[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|10.14.1.44:16379,10.14.1.71:16379,10.14.1.150:16379,10.14.1.99:16379,10.14.1.4:16379,10.14.1.91:16379
type[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|redis
ipAddress[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|LRU
hostname[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|omptest99
version[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|redis-7.4.3
instancename[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|redis_16379
pid[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|9522
install_dir[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis
conf_dir[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis/cluster
user[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|root
conf_file[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis/cluster/redis-16379.conf
free[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|15884
pid_file[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis/redis-16379.pid
database_num[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|1
meminfo[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|5054464
val[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|4.82GB
tcp_keepalive[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|300
daemonize[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|yes
logfile[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis/log/16379.log
save[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|3600,1,300,100,60,10000
bind[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|0.0.0.0
appendonly[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|no
appendfsync[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|everysec
appendfilename[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|appendonly.aof
dbfilename[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|dump-16379.rdb
timeout[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|0
maxclients[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|10000
maxmemory[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|0
clusterenabled[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|yes
port[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|16379
processpath[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis
datapath[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|/home/ntciom/redis
redisMode[_X(g=COLT_CMDB_linux_redis_20250520.sh,p=cmdb,t=script,f=0),Kw&nMSMYju%2v5NhnV,16379]|+|cluster
COL_DETAIL_END: