获取redis主从复制链SHELL脚本

时间:2023-02-09 17:06:45

获取redis主从复制链SHELL脚本

vi redisnode.sh

#!/bin/sh
master_host=$
master_port=$
auth=$ #判断输入密码是否为空,为空则转化为''
if test ! -n "$auth" -o $# -lt
then
#echo " PASSWD IS NULL"
auth='\"\"'
fi #把所有节点格式化保存到一个参数all_note
all_note=''
#获取redis 的master节点
function get_redis_master
{
master_host=$master_host
master_port=$master_port
count=
while test $count -lt
do
#判断输入的节点是否存在
comm="/usr/local/redis/bin/redis-cli -h $master_host -p $master_port -a $auth "
redis_exist=`echo "INFO Replication"| $comm |wc -l >/dev/null`
if [ $redis_exist -eq ];then
echo " $master_host:$master_port redis not exists or passwd error!"
master_host=''
master_port=''
break
fi
echo "INFO Replication" |$comm |grep -q "role:master"
if test X"$?" == X"" ;then
break
fi
comm="/usr/local/redis/bin/redis-cli -h $master_host -p $master_port -a $auth "
master_host=`echo "INFO Replication" |$comm |grep "master_host"|cut -d: -f2 |sed 's/\r//g'`
master_port=`echo "INFO Replication" |$comm |grep "master_port"|cut -d: -f2 |sed 's/\r//g'`
count=$((count+))
done
all_note="${master_host}:${master_port}"
#打印主节点
echo "MASTER NOTE: ${master_host}:${master_port} "
} #获取给定节点的从节点
function get_redis_slave
{
master_host=$
master_port=$
comm="/usr/local/redis/bin/redis-cli -h $master_host -p $master_port -a $auth "
slave_host=`echo "info Replication" | $comm |grep -Ei slave.:ip|awk -F= '{print $2,$3}' |awk -F, '{print $1,$2}'|awk '{print $1":"$3 }'|awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}'`
} #获取给定节点的所有复制链
function get_all_redis_slave
{
master_host=$master_host
master_port=$master_port
count= all_host=$master_host:$master_port
while test $count -lt
do
condition=`echo $all_host |sed 's/ //g'`
if test ! -n "$condition" ;then
break
fi
for line in $all_host
do
tmpline=$tmpline" "$line
master_host=`echo $line |awk -F: '{print $1}'`
master_port=`echo $line |awk -F: '{print $2}'`
get_redis_slave $master_host $master_port
all_host=`echo $all_host |sed "s/$line//g"`
all_host=$slave_host" "$all_host
done
all_host=`echo $all_host |sed "s/^ //g"`
condition=`echo $all_host |sed 's/ //g'`
if test ! -n "$condition" ;then
#echo ""
break
fi
#分行分级打印节点
echo "The ${count}TH NODE: $all_host "
#一行打印所有节点
all_note="$all_note $all_host"
count=$(($count+))
done
}
get_redis_master
get_all_redis_slave

sh  redisnode.sh  ip port password 
有密码的redis要求密码主从一致。

获取redis主从复制链SHELL脚本的更多相关文章

  1. centos下的redis一键安装shell脚本

    #!/bin/bash yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget #安装依赖库 ...

  2. 数据库MySQL、redis主从切换shell脚本

    具体源码可找我领取

  3. 关于使用java执行shell脚本获取centos的硬盘序列号和mac地址

    1.获取硬盘序列号: 新建shell脚本文件: identifier.sh, 内容为: diskdata=`fdisk -l` diskleft=${diskdata#*"identifie ...

  4. 014-交互式Shell和shell脚本获取进程 pid

    Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...

  5. Linux运维之shell脚本

    一.bash漏洞 1)bash漏洞 bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞. bash是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Agai ...

  6. shell脚本特殊变量与变量子串相关知识

    一.shell脚本特殊变量 1.shell中常用特殊位置变量说明: $0 获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包含了脚本路径 $n 获取当前执行的shell脚本的第n个 ...

  7. Apache下通过shell脚本提交网站404死链

    网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链( ...

  8. 利用shell脚本批量提交网站404死链给百度

    网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链( ...

  9. CentOS下编写shell脚本来监控MySQL主从复制的教程

    这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步 ...

随机推荐

  1. contiki-定时器etimer

    Contiki内核是基于事件驱动和Protothreads机制,事件既可以是外部事件(比如按键,数据到达),也可以是内部事件(如时钟中断).定时器的重要性不言而喻,Contiki提供了5种定时器模型, ...

  2. ExtJS4.2学习(16)制作表单(转)

    鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-10/188.html --------------- ...

  3. Oracle错误

    System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本 这个是我页面报的错误,请帮解答 在错误出现的时候我第一时间现在了一个oracle客户端软件,然 ...

  4. 全面解读WM_NOTIFY

    VC中的消息的分类有3种:窗口消息.命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息. 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口.通知消息只适用于 ...

  5. spring-oauth-server实践:授权方式四:client_credentials 模式下有效期内重复申请 access_token ?

    spring-oauth-server入门(1-12)授权方式四:client_credentials 模式下有效期内重复申请 access_token ? 一.失效重建邏輯 二.如果沒有失效,不会重 ...

  6. AMD,CMD,UMD,CommonJS

    http://www.jianshu.com/p/bd4585b737d7 http://www.jianshu.com/p/09ffac7a3b2c

  7. BZOJ_3589_动态树_容斥原理+树链剖分

    BZOJ_3589_动态树_容斥原理+树链剖分 题意: 维护一棵树,支持1.子树内点权加上一个数  2.给出k条链,求路径上的点权和(重复的计算一次) (k<=5) 分析: 可以用树剖+线段树解 ...

  8. window注册鼠标右键菜单&comma;及子菜单

    最近项目中要用到c#并且要注册鼠标点击右键菜单,在这里总结了几种方法以便记录 效果图: 1,reg注册,创建.reg文件,内容如下 Windows Registry Editor Version 5. ...

  9. &lbrack;webpack&rsqb;--webpack 如何解析代码模块路径

    前言 webpack是如何解析代码模块路径 webpack 中有一个很关键的模块 enhanced-resolve 就是处理依赖模块路径的解析的,这个模块可以说是 Node.js 那一套模块路径解析的 ...

  10. PIE SDK辐射定标

    1. 算法功能简介 辐射定标是使用大气纠正技术将影像数据的灰度值转化为表观辐亮度.表观反射率等物理量的过程. PIE支持算法功能的执行,下面对辐射定标算法功能进行介绍. 2. 算法功能实现说明 2.1 ...