需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置

redis-trib.rb的输出

[redis@lxd-vm3 ~]$ redis-trib.rb call 5.5.5.101: config get *timeout*
/usr/local/ruby2.5.1/lib/ruby/gems/2.5./gems/redis-3.3./lib/redis/client.rb:: warning: constant ::Fixnum is deprecated
>>> Calling CONFIG get *timeout*
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.101:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.103:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.102:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]
5.5.5.103:: ["timeout", "", "repl-timeout", "", "cluster-node-timeout", ""]

编写脚本

ip_port=`redis-cli -h $ -p $ -a abc123 -c cluster nodes | awk '{print $2}' | awk -F'@' '{print $1}'`

for i in $ip_port
do
redis_ip=`echo $i | awk -F':' '{print $1}'|sed 's/\r//g'`
redis_port=`echo $i | awk -F':' '{print $2}'|sed 's/\r//g'`
redis_cmd="redis-cli -h $redis_ip -p $redis_port -a abc123 -c"
echo -n "$redis_ip:$redis_port "
$redis_cmd config get $ > config
cat config | awk 'NR % 2 == 0' > even
cat config | awk 'NR % 2 == 1' > odd
paste -d ':' odd even >
tmp.txt
tail_line=$(cat tmp.txt|sed -n '$p')
printf '【'
for x in `cat tmp.txt`
do
if [[ "$x" == "$tail_line" ]];then
printf "%s" $x
else
printf '%s\t' $x
fi
done
printf '】'
echo
done

在后续学习awk命令中,遇到了getline命令,发现可以用一行命令替代上面红色字体的3条语句。

cat config | awk '{printf $0":";getline;print $0}' > tmp.txt

可以作为奇数行和偶数行两两配对一种方法。

说明:getline是获取当前行的下一行,即第一个$0输出的是奇数行,第二个$0输出的是偶数行,依次循环输出所有两两配对的键值对。

 

测试结果

[redis@lxd-vm1 ~]$ sh get_redis_para.sh 5.5.5.101  *timeout*
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.101: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.103: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.102: 【timeout: repl-timeout: cluster-node-timeout:】
5.5.5.103: 【timeout: repl-timeout: cluster-node-timeout:】

输出redis cluster集群所有节点指定的参数的配置的更多相关文章

  1. redis cluster集群部署

    上一篇http://www.cnblogs.com/qinyujie/p/9029153.html,主要讲解了 redis cluster 集群架构 的优势.redis cluster 和 redis ...

  2. Redis Cluster 集群节点维护 (三)

    Redis Cluster 集群节点维护: 集群运行很久之后,难免由于硬件故障,网络规划,业务增长,等原因对已有集群进行相应的调整,比如增加redis nodes 节点,减少节点,节点迁移,更换服务器 ...

  3. Redis Cluster集群知识学习总结

    Redis集群解决方案有两个: 1)  Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...

  4. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  5. Redis Cluster集群搭建<原>

    一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标     Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...

  6. Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)

    前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...

  7. JFinal redis cluster集群插件

    JFinal redis cluster集群插件 JFinal 框架到了2.1版本号,可是依旧仅仅支持redis的主从集群,没有看到Cluster集群的插件.笔者照着主从的插件方式,改了改,实现了个简 ...

  8. 【原创】强撸基于 .NET 的 Redis Cluster 集群访问组件

    Hello 大家好,我是TANZAME,我们又见面了.今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品. 随着业务增长,线上环境的QPS暴增,自然而然将当前的单 ...

  9. Redis Cluster集群搭建与应用

    1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...

随机推荐

  1. 对权值线段树剪枝的误解--以HDU6703为例

    引子 对hdu6703,首先将问题转化为"询问一个排列中大于等于k的值里,下标超过r的最小权值是多少" 我们采用官方题解中的做法:权值线段树+剪枝 对(a[i],i)建线段树,查询 ...

  2. learn about sqlserver partitition and partition table --- add or remove table partitions addition more

    Yes . In the previous. chapter , we see how to generate "partition function" "parttit ...

  3. MySql在Windows下自动备份的几种方法

    以下几种全部是批处理命令中对于备份文件 1.复制date文件夹备份============================假想环境:MySQL   安装位置:C:\MySQL论坛数据库名称为:bbs数 ...

  4. 02_TypeScript数据类型

    typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,写ts代码必须指定类型.   1.布尔类型(boolean) var flag:boolean = true;   2.数字 ...

  5. UI自动化框架搭建

    1.目录结构 大概分为以下几个文件 common :主要是用来放一些封装的公共函数 outputs :主要是输出一些文件,失败截图.用例执行完的测试报告 pagelocate :主要是元素的定位 pa ...

  6. 编程语言的实现,从AST(抽象语法树)开始

    学习博客:https://baijiahao.baidu.com/s?id=1626159656211187310&wfr=spider&for=pc

  7. (数据科学学习手札78)基于geopandas的空间数据分析——基础可视化

    本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 通过前面的文章,我们已经对geopanda ...

  8. jQuery的核心功能选择器

    选择器是jquery的核心 jquery选择器返回的对象是jquery对象,不会返回undefined或者null,因此不必进行判断 基本选择器: ID选择器  $("#ID") ...

  9. 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)

    电子邮件服务器,对于很多公司,都是需要的. 虽然现在很多人,使用 QQ .微信进行一对一的工作沟通,使用QQ 群.微信群进行多人沟通,但这些即时聊天工具,与电子邮件相比,仍有很多不足: a. 电子邮件 ...

  10. luogu2173 [ZJOI2012]网络

    题目链接 problem 给出一个无向图,每条边有一种颜色.每种颜色都构成一个森林.需要完成以下操作. 修改点权 修改边的颜色 询问某种颜色的森林中某条路径上点权最大值 solution 颜色数量不超 ...