ZooKeeper 3.4.13配置安装 |
您所在的位置:网站首页 › zookeeper部署集群 › ZooKeeper 3.4.13配置安装 |
目录 一、安装版本 二、上传文件并解压 三、配置文件 四、启动ZooKeeper集群 五、验证ZooKeeper集群 (—————————————————–木易白驹—————————————————–) 一、安装版本 ZooKeeper 3.4.13 二、上传文件并解压 进入目录:cd /opt/module (此路径为自己虚拟机中存放安装包路径) 上传文件:rz 解压文件:tar -zxvf zookeeper-3.4.13.tar.gz -C /opt/module(进入的目录) 三、配置文件 复制文件① 进入目录:# cd /opt/module/zookeeper-3.4.13/conf/ (此路径为存放自己虚拟机中zookeeper的路径,conf/为zookeeper配置文件的路径) ② 复制文件:# cp zoo_sample.cfg zoo.cfg 图1 修改配置文件zoo.cfg:① 在第12行修改:dataDir=/opt/software/zookeeper-3.4.13/data (这是为了设置一个固定的目录来存储数据快照) [En](this is to set up a fixed directory for storing data snapshots) (此路径为存放自己虚拟机中zookeeper的路径,后面加上data) ② 在第13行添加:dataLogDir=/opt/software/zookeeper-3.4.13/datalog (这是为了设置一个固定的交易日志目录) [En](this is to set up a fixed transaction log directory) (此路径为存放自己虚拟机中zookeeper的路径,后面加上datalog) 图2 ③ 在最后一行添加:server.1=yangdarun01:2888:3888 (yangdarun01 是自己主节点的主机名) server.2=yangdarun02:2888:3888 (yangdarun02 是自己从节点1的主机名) server.3=yangdarun03:2888:3888 (yangdarun03 是自己从节点2的主机名) 图3 在路径 # /opt/software/zookeeper-3.4.13路径下创建所需目录:① 首先要进入cd /opt/software/zookeeper-3.4.13: cd /opt/software/zookeeper-3.4.13 (此路径为自己虚拟机中存放zookeeper路径) ② 创建data目录:mkdir data ③ 创建datalog目录:mkdir datalog 图4 将配置好的文件复制到其他两台机器上:(路径都是自己虚拟机中存放zookeeper的路径) scp -r /opt/software/zookeeper-3.4.13/* ydr@yangdarun02:/opt/software/zookeeper-3.4.13/ scp -r /opt/software/zookeeper-3.4.13/* ydr@yangdarun03:/opt/software/zookeeper-3.4.13/ 设置$ZOOKEEPER_HOME的目录属主:chown -R ydr /opt/software/zookeeper-3.4.13 (3台机器都要操作) 设置主节点和从节点的ID: vim /opt/software/zookeeper-3.4.13/data/myid (路径是自己虚拟机中存放zookeeper的路径,后面加/data/myid) 在3台机器上分别输入:1、2、3 (第一台输入1,第二台输入2,第三台输入3) 新建文件:vim /etc/profile.d/zookeeper.sh输入: 图5 export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.13 export PATH=$ZOOKEEPER_HOME/bin:$PATH图6 重启:reboot(第7、8点三台机器都要操作) 四、启动ZooKeeper集群 在3台机器上分别启动,输入:/opt/module/zookeeper-3.4.13/bin/zkServer.sh start (此路径为自己虚拟机中存放zookeeper的路径,后面加/bin/zkServer.sh start是启动配置文件的意思) 图8 图9 图10 图11 五、验证ZooKeeper集群 分别对3台机器进行验证以下两个命令: ① 查看Zookeeper状态 print(—————————————————–加油!—————————————————–) 一气呵成!就是大家分发给另外2个虚拟机是可以不用scp,可以用配置插件xsync,这个插件配置后就可以使用!需要看如何配置插件,请看我其他作品!祝你生活愉快! (—————————————————–木易白驹—————————————————–) Original: https://blog.csdn.net/qq_63756815/article/details/127004192Author: 瑞雪兆丰年(润 )Title: ZooKeeper 3.4.13配置安装 相关阅读 Title: SQL注入进阶-order by注入目录 01-Order By简介 02-Order By注入场景 03-Order By注入姿势 03.1-结合union select进行盲注 03.2-结合if()进行盲注 03.3-结合if() + sleep()进行盲注 03.4-结合报错注入进行盲注 04-靶场部署打包 01-Order By简介 在很多web站点中,都提供了对前端界面显示数据的排序功能,而实际中web站点的排序功能都是借助SQL的order by来实现的,下图是某站点利用order by排序功能实现的效果: order by语法: order by 数字 | 列名 [ ASC , [ DESC ] ]1、order by:对查询结果按照指定列进行排序,指定列的方式有两种:数字或列名2、ASC:升序排列,默认为ASC3、DESC:降序排列注意:以数字方式指定排序列时,数字不能超过列的总数,利用该特性在进行SQL注入的时候可以判断数据库的字段数量 02-Order By注入场景 CTF题干给出一个登陆界面,根据提示信息,我们可知,只要破解了用户admin的密码并登陆,即可获得flag值,如下: 题干分析: web前端页面输入用户名密码并点击提交后,Form表单会将username/password提交到后台进行登陆验证,此时如果后端执行验证时先使用username查表,再匹配查出来记录的密码字段是否和用户提交的password一致来判断是否允许登陆,实现这种登陆验证的服务端代码往往如下所示: 后台未采用select * from users where username='xxx' and password='xxx'这种形式来验证登陆信息)代码逻辑分析:1、如果输入的用户名不是admin,则返回username error!!! 2、如果输入的用户名是admin,则比较用户输入的密码与数据库中查到的密码是否一致3、若密码一致则返回flag,否则返回password error!!! 4、此时便可借助web提示信息进行注入测试 03-Order By注入姿势 03.1-结合union select进行盲注原理简述: 首先要明白,order by排序是 对整个联合查询的结果统一进行排序的,构造如下SQL语句: admin') union select 1,2,'x' order by 3 --+ 注释:admin')是为了闭合SQL语句中的引号和括号1、如果联合查询中第三列x小于password的值,那么1,2,x会被排在第一行,源代码中对查询结果做比较的时候,会返回’username error!!!’2、如果联合查询中第三列x大于password的值,那么1,2,x会被排在第二行,源代码中对查询结果做比较的时候,会返回’password error!!!’注意:由于order by 在进行比较时不区分大小写,因此最好加上 binary’x’,即 union select 1,2,binary’a’ order by 3;2 注入步骤: 不断改变联合查询的第三列的值进行密码猜解(此处只做原理说明,因此假设已知密码为p0ssw0rd) 1、由于’o’小于’p0ssw0rd’,因此order by排序后会将1,2,’o’排在第一行,并将第一行返回给PHP进行 admin' union select 1,2,'o' order by 3 --+2、由于’q’大于’p0ssw0rd’,因此order by排序后会将1,2,’q’排在第二行,并将第一行返回给PHP进行 admin' union select 1,2,'q' order by 3 --+因此,我们根据回显的不同,可以不断的猜测 x 的取值,直到逐位取得 password 的值 03.2-结合if()进行盲注原理概述: 构造SQL语句:admin') order by if(表达式,1,(select SCHEMA_NAME from information_schema.SCHEMATA))注入原理介绍:1、表达式为真,则页面正常显示,此时可操控表达式内容进行注入猜解2、表达式为假,则页面输出告警(Something Wrong: Subquery returns more than 1 row),其中SCHEMATA是Mysql自带数据库information_schema中存放所有库名的数据库,SCHEMA_NAME为数据库名称3、admin’)是为了逃逸引号和括号,涉及注入类型判断,不在本文所述范围 mysql自带数据库information_schema,记录本站所有数据库信息 注入步骤: 通过控制表达式的具体内容,获得想要的数据,比如获取数据库名称(已知数据库名称为order_by_inject,此处操作仅作演示),表达式构造如下: substr(database(),1,1) = x 注释:通过控制substr()函数的参数获取数据库名称的第一个字母并与x进行比较,不断更改x的取值,然后根据界面回显不同来判断数据库名的首字母 substr(database(),1,1) = 'a' ///返回false,页面显示Something Wrong······ substr(database(),1,1) = 'o' ///返回true,页面显示password error,说明首字母为'o'因此,我们根据回显的不同,可以不断的猜测 x 的取值,直到逐位取得数据库名,此后再利用information_schema数据库进行脱裤即可 注释:关于利用information_schema数据库知识以及利用它进行脱裤的技巧可后续关注博主新文章 03.3-结合if() + sleep()进行盲注该方法与上一章节类似,只需将(select SCHEMA_NAME from information_schema.SCHEMATA)更改为sleep()函数即可,sleep(3)表示延迟3秒执行,如下: 03.4-结合报错注入进行盲注报错函数基础: 1、Extractvalue()函数语法:Extractvalue(XML_document,Xpath_string)用法:当Xpath_string参数不符合XPath格式时,产生报错 2、Updatexml()函数语法:updatexml(XML_document,Xpath_string,new_value)用法:当Xpath_string参数不符合XPath格式时,产生报错 注入操作: 构造SQL语句:admin') order by extractvalue(1,concat('~',database())) --+04-靶场部署打包 靶场环境是我自行搭建的,正文中基本上包含了源码,如有小伙伴需要打包好的靶场,可以留言索要,创作不易,未经允许禁止转载,多多理解、多多支持! Original: https://blog.csdn.net/li20132273/article/details/127714511Author: AkangBoyTitle: SQL注入进阶-order by注入 原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/415623/ 转载文章受原作者版权保护。转载请注明原作者出处! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |