etcd 命令行
比较重要的配置
-name
节点名称,默认是UUID-data-dir
保存日志和快照的目录,默认为当前工作目录-addr
公布的ip地址和端口。 默认为127.0.0.1:2379-bind-addr
用于客户端连接的监听地址,默认为-addr配置-peers
集群成员逗号分隔的列表,例如 127.0.0.1:2380,127.0.0.1:2381-peer-addr
集群服务通讯的公布的IP地址,默认为 127.0.0.1:2380.-peer-bind-addr
集群服务通讯的监听地址,默认为-peer-addr配置
上述配置也可以设置配置文件,默认为/etc/etcd/etcd.conf
。
试用etcd
ectdctl介绍
我们可以使用etcdctl这个官方提供的客户端来对etcd进行操作,可以从github.com/coreos/etcd/releases下载。
etcdctl是一个命令行的客户端,它提供了一下简洁的命令,可以方便我们在对服务进行测试或者手动修改数据库内容。建议刚刚接触etcd的同学可以先通过cetdctl来熟悉相关操作。这些操作跟HTTP API基本上是对应的。
etcdctl支持下面列出来的命令,基本上可以分为数据库操作和非数据库操作,可以查看etcdctl README.md来了解更多
➜ ~ etcdctl -h |
数据库操作
数据库操作围绕对键值和目录的 CRUD
(符合 REST 风格的一套操作:Create
)完整生命周期的管理。
etcd 在键的组织上采用了层次化的空间结构(类似于文件系统中目录的概念),用户指定的键可以为单独的名字,如 testkey
,此时实际上放在根目录 /
下面,也可以为指定目录结构,如 cluster1/node2/testkey
,则将创建相应的目录结构。
注:CRUD 即 Create, Read, Update, Delete,是符合 REST 风格的一套 API 操作。
set
指定某个键的值。例如
➜ ~ etcdctl set /testdir/testkey "Hello world" |
支持的选项包括:
--ttl '0' 该键值的超时时间(单位为秒),不配置(默认为 0)则永不超时 |
get
获取指定键的值。例如
➜ ~ etcdctl get /testdir/testkey |
当键不存在时,则会报错。例如
➜ ~ etcdctl get /testdir/testkey2 |
支持的选项为
--sort 对结果进行排序 |
update
当键存在时,更新值内容。例如
➜ ~ etcdctl update /testdir/testkey "Hello" |
当键不存在时,则会报错。例如
➜ ~ etcdctl update /testdir/testkey2 "Hello" |
支持的选项为
--ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 |
rm
删除某个键值。例如
➜ ~ etcdctl rm /testdir/testkey |
当键不存在时,则会报错。例如
➜ ~ etcdctl rm /testdir/testkey |
支持的选项为
--dir 如果键是个空目录或者键值对则删除 |
mk
如果给定的键不存在,则创建一个新的键值。例如
➜ ~ etcdctl mk /testdir/testkey "Hello world" |
当键存在的时候,执行该命令会报错,例如
➜ ~ etcdctl mk /testdir/testkey "Hello world" |
支持的选项为
--ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 |
mkdir
如果给定的键目录不存在,则创建一个新的键目录。例如
➜ ~ etcdctl mkdir testdir2 |
当键目录存在的时候,执行该命令会报错,例如
➜ ~ etcdctl mkdir testdir2 |
支持的选项为
--ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 |
setdir
创建一个键目录,无论存在与否。
支持的选项为
--ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 |
updatedir
更新一个已经存在的目录。 支持的选项为
--ttl '0' 超时时间(单位为秒),不配置(默认为 0)则永不超时 |
rmdir
删除一个空目录,或者键值对。
➜ ~ etcdctl setdir dir1 |
若目录不空,会报错
➜ ~ etcdctl set /dir/testkey hi |
ls
列出目录(默认为根目录)下的键或者子目录,默认不显示子目录中内容。
例如
➜ ~ etcdctl ls |
支持的选项包括
--sort 将输出结果排序 |
非数据库操作
backup
备份 etcd 的数据。
支持的选项包括
--data-dir etcd 的数据目录 |
watch
监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出。
例如,用户更新 testkey 键值为 Hello watch。
➜ ~ etcdctl get /testdir/testkey |
➜ ~ etcdctl watch testdir/testkey |
支持的选项包括
--forever 一直监测,直到用户按 `CTRL+C` 退出 |
exec-watch
监测一个键值的变化,一旦键值发生更新,就执行给定命令。
例如,用户更新 testkey 键值。
➜ ~ etcdctl exec-watch testkey -- sh -c 'ls' |
支持的选项包括
--after-index '0' 在指定 index 之前一直监测 |
member
通过 list、add、remove 命令列出、添加、删除 etcd 实例到 etcd 集群中。
例如本地启动一个 etcd 服务实例后,可以用如下命令进行查看。
$ etcdctl member list |
命令选项
--debug 输出 cURL 命令,显示执行命令的时候发起的请求 |
etcd 命令行的更多相关文章
- etcd 命令行(转)
原文 https://www.cnblogs.com/breg/p/5756558.html 比较重要的配置 -name 节点名称,默认是UUID-data-dir 保存日志和快照的目录,默认为当前工 ...
- 浅入深出ETCD之【简介与命令行使用】
前言 你知道etcd吗?随着k8s的使用广泛之后,etcd被非常多的人所知道,同时又因为它可靠的分布式特性被很多人喜欢.所以,我准备有几篇博文来记录一下,从基本使用到线上部署再到原理分析,做一个系列. ...
- CloudFoundry命令行和Kubernetes命令行的Restful API消费方式
先说CloudFoundry的命令行工具CLI.我们在CloudFoundry环境下工作,第一个使用的命令就是cf login. 如果在环境变量里维护CF_TRACE的值为true: 则我们能发现,诸 ...
- 教你用Cobra开发类似docker的命令行
目录 前言 一.安装 二.初始化应用 gomod初始化 创建入口文件cmd/root.go 创建主程序main.go 三.生成Command 创建hello子命令 创建version子命令 四.如何设 ...
- golang常用库:cli命令行/应用程序生成工具-cobra使用
golang常用库:cli命令行/应用程序生成工具-cobra使用 一.Cobra 介绍 我前面有一篇文章介绍了配置文件解析库 Viper 的使用,这篇介绍 Cobra 的使用,你猜的没错,这 2 个 ...
- Go通过cobra快速构建命令行应用
来自jetbrains Go 语言现状调查报告 显示:在go开发者中使用go开发实用小程序的比例为31%仅次于web,go得益于跨平台.无依赖的特性,用来编写命令行或系统管理这类小程序非常不错. 本文 ...
- Cmder--Windows下命令行利器
cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
随机推荐
- IIR滤波器设计(调用MATLAB IIR函数来实现)
转载请注明文章来源 – http://blog.csdn.net/v_hyx ,请勿用于任何商业用途 对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求 ...
- iOS使用shell脚本注入混淆内容
背景 公司需要做一系列的壳版本,壳版本如果内容雷同提交到App Store会有被拒绝的风险,其中有一种解决方案是在壳版本中注入混淆的代码,防止被苹果检测到内容太过雷同而导致审核被拒绝,本文是针对这个场 ...
- yaf 笔记(持续更新)
1.如果action不需要输出视图文件(如果ajax请求之类的),只需要在action里面加Yaf\DisPatcher::getInstance()->disableView(); 2.获取客 ...
- ubuntu修改分辨率
ubuntu分辨率真是坑爹,不知什么原因,ubuntu分辨率一下子变了,通过,显示->分辨率,都改不过来... 无奈,有重装系统的冲动,从网上找了很多方法,都不管用,有一次,在这里 sudo g ...
- 浅谈一致性Hash原理及应用
在讲一致性Hash之前我们先来讨论一个问题. 问题:现在有亿级用户,每日产生千万级订单,如何将订单进行分片分表? 小A:我们可以按照手机号的尾数进行分片,同一个尾数的手机号写入同一片/同一表中. 大佬 ...
- Ext.js 之MVC
Ext.js 4.0之MVC
- 关于const 和指针
这个很久之前就很困扰的问题,现在再理一下: 1,指向const对象的指针 >C++强制要求指向const对象的指针也必须具有const特性!!!也就是不能把一个const对象的地址赋给一个非co ...
- TypeScript学习笔记(五) - 泛型
本篇将介绍在TypeScript如何使用泛型. 一.泛型方法 在TypeScript里,声明泛型方法有以下两种方式: function generics_func1<T>(arg: T): ...
- Spring4中@value用法详解
版本:spring-framework-4.1 一.概述 为了简化读取properties文件中的配置值,Spring支持@Value注解的方式来获取,这种方式大大简化了项目的配置,业务中也提高了灵活 ...
- POJ3662电缆
题目:http://poj.org/problem?id=3662 二分答案.然后边权>mid的边的边权2记为1,否则记为0.找一个边权2的最短路,看dis[n]是否<=K. 别忘了不能到 ...