博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
etcd 命令
阅读量:4964 次
发布时间:2019-06-12

本文共 6146 字,大约阅读时间需要 20 分钟。

目录

etcdctl命令全局选项参数

参数 说明
--debug 输出调试信息,显示执行命令的时候发起的请求
--no-sync 发出请求钱不主动同步集群信息
--output, -o 'simple' 输出响应消息的格式,可以为simple,json或extended
--discovery-srv, -D 通过域名查询,来探测集群成员信息
--peers, -C 集群中成员地址列表,用逗号隔开
--endpoint 集群中成员地址列表
--cert-file 如果集群需要https认证,提供TLS的证书文件路径
--key-file HTTPS 认证的证书文件路径
--ca-file 域名相关的根证书文件路径
--username, -u username[:password] 用户名和密码验证信息
--timeout '1s' 请求的连接超时,默认为1s
--total-timeout '5s' 命令执行总超时,默认为5s
--version, -v 打印版本信息

etcd命令预览

etcd支持的命令大体上可以分为两类,数据类操作、非数据类操作

数据类操作

命令 说明
set 设置键对应的值
get 获取键对应的值
update 更新键对应的值
mk 创建新的值
rm 删除键值或目录
watch 监控某键值的变化
exec-watch 监控到某键值变化时,执行的命令
ls 列出目录下的内容
mkdir 创建新的目录
rmdir 删除空目录或者一个键值
setdir 创建目录(允许目录已经存在)
updatedir 更新已经存在的目录

非数据类操作

命令 说明
backup 备份指定的目录
cluster-health 检查etcd集群健康情况
member 添加、删除或列出成员,需要带具体的子命令
import 导入快照
user 用户添加、权限管理,需要带具体子命令
role 角色添加、权限管理,需要带具体子命令
auth 全局认证管理

数据类操作

1. set

[root@node2 ~]# etcdctl set /testdir/testkey "helloworld"helloworld

2. get

[root@node2 ~]# etcdctl get /testdir/testkeyhelloworld[root@node2 ~]# 支持--sort,对返回结果进行排序

3. update

[root@node2 ~]# etcdctl update /testdir/testkey hellohello[root@node2 ~]# etcdctl get /testdir/testkeyhello[root@node2 ~]#

4. mk

如果给定的键不存在,则创建,否则报错[root@node2 ~]# etcdctl mk /testdir/testkey2 hellohello[root@node2 ~]#[root@node2 ~]# etcdctl mk /testdir/testkey helloError:  105: Key already exists (/testdir/testkey) [16]

【set与mk区别】 当键存在是set会修改键的值,mk则会报错

5. rm

删除某个键,键不存在就报错[root@node2 ~]# etcdctl rm /testdir/testkey2PrevNode.Value: hello--dir 如果键是空目录或者是键值对则删除--recursive  删除目录和所有子键

6. watch

监控一个键值的变化,发现键值更新后就回退出--forever 一直监测,知道用户按CTRL+C退出

7. exec-watch

监测一个键值的变化,一旦键值发生更新,执行指定的命令[root@node2 ~]# etcdctl exec-watch /testdir/testkey -- sh -c 'ls /'bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var该命令会一直执行下去,不会像watch一样,监测到一次更新后就退出

8. mkdir

如果给定的目录不存在则创建,存在会报错[root@node2 ~]# etcdctl mkdir /test/testc --ttl 10 --ttl 超时时间单位s,10s后目录会被删除

9. rmdir

删除一个空目录,或键值对。若目录不为空,会报错。[root@node2 ~]# etcdctl mkdir /testa[root@node2 ~]# etcdctl rmdir /testa/[root@node2 ~]#[root@node2 ~]# etcdctl ls /testdir//testdir/testkey/testdir/testkey2[root@node2 ~]# etcdctl rmdir /testdir/Error:  108: Directory not empty (/testdir) [28][root@node2 ~]#

11. setdir

创建一个空目录,如果目录已经存在会报错[root@node2 ~]# etcdctl setdir /etc/testb[root@node2 ~]# etcdctl ls /etc/testb[root@node2 ~]# etcdctl setdir /etc/testbError:  102: Not a file (/etc/testb) [34][root@node2 ~]#

12. updatedir

用于更新已经存在的目录属性(目前只有存活时间)[root@node2 ~]# etcdctl mkdir /test/testc --ttl 10[root@node2 ~]# etcdctl mkdir /test/testc --ttl 30[root@node2 ~]# etcdctl updatedir /test/testc --ttl 300[root@node2 ~]#

非数据类操作

1. backup

--data-dir value        数据目录路径   --wal-dir value         Path to the etcd wal dir   --backup-dir value      备份数据到指定目录   --backup-wal-dir value  Path to the backup wal dir   --with-v3               Backup v3 backend data[root@node2 ~]# cat /etc/etcd/etcd.conf |grep data-dirdata-dir: "/opt/etcd_data"[root@node2 ~]# ls /opt/etcd_datamember[root@node2 ~]# etcdctl backup --data-dir /opt/etcd_data --backup-dir /tmp/2019-06-05 22:37:20.757947 I | ignoring EntryConfChange raft entry2019-06-05 22:37:20.758148 I | ignoring EntryConfChange raft entry2019-06-05 22:37:20.758170 I | ignoring EntryConfChange raft entry2019-06-05 22:37:20.758314 I | ignoring member attribute update on /0/members/cf5538a4dab95927/attributes2019-06-05 22:37:20.758356 I | ignoring member attribute update on /0/members/a3d1fb0d28ed2953/attributes2019-06-05 22:37:20.758387 I | ignoring member attribute update on /0/members/8816eaa680e63c73/attributes2019-06-05 22:37:20.758455 I | ignoring v3 raft entry2019-06-05 22:37:20.758484 I | ignoring member attribute update on /0/members/cf5538a4dab95927/attributes2019-06-05 22:37:20.758509 I | ignoring member attribute update on /0/members/a3d1fb0d28ed2953/attributes2019-06-05 22:37:20.758534 I | ignoring member attribute update on /0/members/8816eaa680e63c73/attributes2019-06-05 22:37:20.758575 I | ignoring member attribute update on /0/members/8816eaa680e63c73/attributes2019-06-05 22:37:20.758608 I | ignoring member attribute update on /0/members/a3d1fb0d28ed2953/attributes2019-06-05 22:37:20.758633 I | ignoring member attribute update on /0/members/cf5538a4dab95927/attributes2019-06-05 22:37:20.758720 I | ignoring v3 raft entry2019-06-05 22:37:20.758870 I | ignoring member attribute update on /0/members/cf5538a4dab95927/attributes2019-06-05 22:37:20.758891 I | ignoring member attribute update on /0/members/a3d1fb0d28ed2953/attributes2019-06-05 22:37:20.758902 I | ignoring member attribute update on /0/members/8816eaa680e63c73/attributes[root@node2 ~]# ls /tmp/member/snap  wal[root@node2 ~]# snap 快照目录,保存节点状态快照文件wal 保存了数据库预写日志信息【预写日志】预写日志要求数据库在发生实际提交前必须先将操作写入日志,可以保障系统在崩溃后根据日志状态恢复状态。

2. cluster-health

3. member

4. role

add 添加一个角色get 查询角色细节list 列出所有用户角色remove 删除用户角色grant 添加路径到角色控制 ,r:w:rwrevoke 删除某路径的用户角色信息默认带有root,guest两种角色,前者为最高权限用户,后者为不带验证情况下的用户添加一个角色[root@node2 ~]# etcdctl role add read_testdirRole read_testdir created[root@node2 ~]#设置该角色具有对/testdir/目录有读权限[root@node2 ~]# etcdctl role grant read_testdir -path '/testdir/*' -readRole read_testdir updated[root@node2 ~]#

5. user

对用户进行管理,add 添加一个用户get 查询用户细节list  列出所有用户remove 删除用户grant 添加用户到j角色revoke 删除用户角色passwd 修改用户的密码默认情况下,需要先创建(启用)root用户作为etcd集群的最高权限管理员[root@node2 ~]# etcdctl user add rootNew password: User root created[root@node2 ~]# etcdctl user add test1New password: User test1 created[root@node2 ~]# 分配已有角色给用户[root@node2 ~]# etcdctl user grant test1 -roles read_testdirUser test1 updated[root@node2 ~]#查看用户细节[root@node2 ~]# etcdctl user get test1User: test1Roles:  read_testdir-[root@node2 ~]# etcdctl user get test1  #用户具有多种角色User: test1Roles:   read_testdir root删除用户角色[root@node2 ~]# etcdctl user revoke test1 -roles read_testdirUser test1 updated[root@node2 ~]#

6. auth

是否启用访问验证。enable为启用,disable为禁用。[root@node2 ~]# etcdctl user listInsufficient credentials[root@node2 ~]# etcdctl --username root:123 user list   使用--username  用户名:密码访问roottest1[root@node2 ~]#

参考

《Docker技术入门与实战》 第二版
 https://blog.csdn.net/fnatic_/article/details/84307332

转载于:https://www.cnblogs.com/mldblue/articles/10984657.html

你可能感兴趣的文章
数据分析与展示---Pandas库数据特征分析
查看>>
二叉搜索树、B树
查看>>
cf里的一些简单组合数题
查看>>
iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建...
查看>>
竞争性需求分析
查看>>
js读取解析JSON数据
查看>>
swift 获取Appstore版本号并与本地版本比较 更新跳转到Appstore
查看>>
51Node 1065----最小正子段和
查看>>
特殊乘法(数位拆解)
查看>>
【洛谷 P4342】[IOI1998]Polygon(DP)
查看>>
【洛谷 P1651】 塔 (差值DP)
查看>>
【洛谷 P3191】 [HNOI2007]紧急疏散EVACUATE(二分答案,最大流)
查看>>
【洛谷 P2512】 [HAOI2008]糖果传递(贪心)
查看>>
leetcode-数组-子集
查看>>
Socket通信
查看>>
使用git从本地上传至git码云远程仓库
查看>>
Go语言学习笔记(十五)之异常处理
查看>>
检测IE浏览器兼容Edge模式及IE11
查看>>
linux-镜像下载
查看>>
RobHess的SIFT代码解析步骤四
查看>>