博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎样截取Swarm集群令牌?shell命令输出的信息,截取其中一段,作为字符串变量
阅读量:2488 次
发布时间:2019-05-11

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

问题:

在创建Docker Swarm集群的过程中,执行完docker swarm init 命令以后,集群就已经创建好了,可以通过 docker swarm join-token manager 命令和docker swarm join-token worker命令,分别显示管理节点和工作节点加入到集群的命令,其中有令牌的信息。

一般通过手工复制提示信息中的整个命令,也能顺利的将其余的管理节点和工作节点加入到 Swarm 集群中。但如果能够通过shell编程,截取命令输出信息中的固定长度的令牌信息,就可以实现Docker Swarm集群创建过程的自动化,截取令牌,非常有用。

 

解决:

1、将命令输出通过grep token过滤,得到一行字符串,其中包含令牌;

2、从字符串变量中截取第x到第y位置的字符串,这就是令牌字符串;

 

# 原始输出:

$ docker swarm join-token manager

To add a manager to this swarm, run the following command:

    docker swarm join \

    --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0

mw93l7nklgt9mehgv \

    192.168.99.118:2377

 

$ docker swarm join-token worker

To add a worker to this swarm, run the following command:

    docker swarm join \

    --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-blqzz5y4

8jbd61j0ywzbgvkp9 \

    192.168.99.118:2377

 

# 使用grep token 过滤后的输出

$ docker swarm join-token manager|grep token

    --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0

mw93l7nklgt9mehgv \

 

$ docker swarm join-token worker|grep token

    --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-blqzz5y4

8jbd61j0ywzbgvkp9 \

  

代码:

#切换到主控节点manager1

eval $(docker-machine env manager1)

 

#显示管理节点加入集群的信息,截取其中的令牌作为变量

#T1是上面管理节点加入集群的整个字符串,

#包含前面4个无用的空格和--token及空格8个字符,一共12个字符,

#${T1:12:85},截取T1字符串,从第12个到85个,刚好是令牌。

T1=`docker swarm join-token manager|grep token`

TM=${T1:12:85}

Echo 管理节点令牌: $TM

 

#显示工作节点加入集群的信息,截取其中的令牌作为变量

#T2是工作节点的

T2=`docker swarm join-token worker|grep token`

TW=${T2:12:85}

Echo 工作节点令牌: $TW

 

#TM字符串变量是管理节点加入的令牌

#TW字符串变量是工作节点加入的令牌

#便于后面编程使用

 

命令:

eval $(docker-machine env manager1)

T1=`docker swarm join-token manager|grep token`

TM=${T1:12:85}

Echo 管理节点令牌: $TM

T2=`docker swarm join-token worker|grep token`

TW=${T2:12:85}

Echo 工作节点令牌: $TW

截图:

后记:

#1、既然已经得到 T1=`docker swarm join-token manager|grep token`这个变量,是否可以直接利用T1这个变量到 集群的创建命令中?有待验证。

#T1 的值是“    --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0mw93l7nklgt9mehgv \

# 2、字符串截取操作的例子

$var1=cowabunga

$echo ${var:0:3}
cow
$echo ${var1:3:7}
abunga

你可能感兴趣的文章
windows系统查找文件-通配符的使用
查看>>
python爬虫:其他操作
查看>>
IDEA 运行spingboot时出现Process finished with exit code -1073741819 (0xC0000005)
查看>>
大数据学习之Linux环境搭建(导航)
查看>>
[企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用
查看>>
模板方法模式
查看>>
word20161207
查看>>
【转】Java MySQL数据类型对照
查看>>
poj 3070
查看>>
javascript:正则表达式对象
查看>>
esper(4-3)-Non-Overlapping Context
查看>>
python web django base skill
查看>>
arcgis建立拓扑分析(检验矢量图)
查看>>
SQL Server 中创建数据库、更改主文件组示例
查看>>
Ubuntu下修改file descriptor
查看>>
全排列问题(递归)
查看>>
题目1179:阶乘-------------阶乘不用long long int 就不能AC
查看>>
android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址
查看>>
如何在EXCEL中添加下拉框
查看>>
学习jvm,关于MAT an internal error occurred during:"Parsing heap dump" from问题
查看>>