设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站已关闭,不再开放。PC时代已远逝,拥抱云原生时代,拥抱k8s,请移步:https://www.v2k8s.com

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 4727|回复: 9

SSH::Batch提供的强大的批量工具,跟大家分享一下 [复制链接]

Rank: 8Rank: 8

签到
273
注册时间
2011-5-3
最后登录
2014-3-20
在线时间
698 小时
阅读权限
90
积分
19482
帖子
119
主题
20
精华
0
UID
13472
发表于 2012-4-6 11:31:03 |显示全部楼层
        相信很多做运维或者在 Linux/Unix 下做开发的朋友也一样,经常需要 SSH 到某台机器上去做点什么。当你只有一台服务器的时候,并不会觉得敲一串命令有啥不爽,但是当你有多台服务器,每台都需要你 SSH 上去做点什么的时候,如果还纯人工纯手动,那就太郁闷了。agentzh++ 写了 SSH::Batch 来拯救我们。这个我目前在用,管理多台服务器很方便。和大家分享一下。
        SSH::Batch 是基于 Net::OpenSSH 的,而 Net::OpenSSH 是基于 OpenSSH的二进制客户端的,所以只要你机器上装了 OpenSSH 客户端,此外没有其他太多的依赖模块,但正因为此,该模块在 Windows 上是无法使用的。事实上,在 perl 的世界里如果需要编程操纵 SSH, Net::OpenSSH 是首选的模块,而Net::SSH::* 系列的模块,我个人不是很推荐,一来依赖太多,二来有些模块缺人管理,也许以后情况会好些。

1.安装
# cpan SSH::Batch
安装完成后,为我们提供了几个方便的perl程序:atnodes,key2nodes,tonodes,fornodes

2.使用:
(1)根据每个平台或者作用建立相应的集群,而且这个列表维护起来也比较方便。
#vim ~/.fornodesrc
cluster1=[a,b,c].example.com
cluster2=serv[1-10].example.com
cluster3=10.0.0.[3,4,6] 10.0.0.[7-20]
cluster=cluster1+cluster2+cluster3
这里注意:由于SSH::Batch将我们划分的集群当作是集合来看待,所以可以对这些集合进行数学上的运算,如求和,并,交,差集。具体参考官网http://search.cpan.org/~agent/SSH-Batch-0.028/lib/SSH/Batch.pm

(2)查看列表:fornodes -x '{cluster1}'

(3)使用atnodes在目标集合上同步批量执行命令或者脚本
   atnodes -h 查看其用法
   USAGE:

    atnodes [OPTIONS] COMMAND... -- HOST_PATTERN... [OPTIONS]
    atnodes [OPTIONS] COMMAND HOST_PATTERN... [OPTIONS]

OPTIONS:
    -c <num>      Set SSH concurrency limit. (default: 20, when -tty is on, this setting will no use)
                        默认20个并发进程,可以根据需求调整
    -h            Print this help.
    -l            List the hosts and do nothing else.
    -L            Use the line-mode output format, i.e., prefixing
                  every output line with the machine name.
                  (could be controlled by the env SSH_BATCH_LINE_MODE)
    -p <port>     Port for the remote SSH service.
    -ssh <path>   Specify an alternate ssh program.
                  (This overrides the SSH_BATCH_SSH_CMD environment.)
    -t <timeout>  Specify timeout for net traffic.
    -u <user>     User account for SSH login.
    -v            Be verbose.
    -w            Prompt for password (used for login and sudo).
    -tty          Pseudo-tty.
上面的每一项不用我单独解释,我来举个例子,
#atnodes -L -v -u root 'echo "my name is `hostname`"' '{cluster1}'
也可以单独对某一台机器进行操作:atnodes -u root 'echo "my name is `hostname`"' a.example.com
(4)tonodes将文件批量上传到集群指定位置
#tonodes /tmp/my.sh '{cluster}':/root/tmp

(5)key2nodes命令
我有很多服务器,要把公钥一个一个写道他们的autorized_keys文件,很麻烦,但是这个key2nodes命令可以很方便的帮你生成和分发密钥。如果你在机器集群上的用户名和密码都一样(一般管理集群,都有中心认证服务器吧,不然你哭死),你就可使用这个命令来帮助你,比如说我想把公钥传到 '{cluster}' 这个集合中的机器上去,我只需要:
#key2nodes -u root '{cluster}'

     以上就是这个工具的用法简介,这个是淘宝的agentzh开发的,很是强大,我用着是很爽,可以尝试的去实现一些方便的工具,希望能够对大家批量的任务有所帮助。

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

论坛元老

LT社区闲人

Rank: 8Rank: 8

注册时间
2011-6-20
最后登录
2014-5-12
在线时间
253 小时
阅读权限
90
积分
87857
帖子
193
主题
2
精华
0
UID
14521
发表于 2012-4-6 12:16:54 |显示全部楼层
分发密钥, 这个功能不错

使用道具 举报

Rank: 8Rank: 8

注册时间
2012-1-3
最后登录
2014-6-5
在线时间
181 小时
阅读权限
90
积分
23493
帖子
242
主题
4
精华
0
UID
17093
发表于 2012-4-6 13:49:32 |显示全部楼层
很强大  研究研究

使用道具 举报

Rank: 6Rank: 6

注册时间
2011-8-23
最后登录
2015-12-9
在线时间
26 小时
阅读权限
70
积分
5075
帖子
13
主题
1
精华
0
UID
15494
发表于 2012-4-8 14:20:23 |显示全部楼层
这个还真需要
发个求助http://bbs.linuxtone.org/thread-18879-1-1.html

使用道具 举报

论坛元老

社区清洁工

Rank: 8Rank: 8

注册时间
2010-2-8
最后登录
2019-2-21
在线时间
304 小时
阅读权限
90
积分
46778
帖子
773
主题
29
精华
0
UID
7902
发表于 2012-4-9 10:27:25 |显示全部楼层
不错很强大,顺便也发个pssh,这个工具也很强大!
每天抽空上论坛学习,一步一步把基础打牢,做个技术专才。

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-1-23
最后登录
2019-3-7
在线时间
941 小时
阅读权限
90
积分
168110
帖子
160
主题
7
精华
0
UID
1171
发表于 2012-4-9 11:23:33 |显示全部楼层
正需要这方面的东东。谢谢LZ

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-1-23
最后登录
2019-3-7
在线时间
941 小时
阅读权限
90
积分
168110
帖子
160
主题
7
精华
0
UID
1171
发表于 2012-4-9 11:39:38 |显示全部楼层
如果机器的数量很多,性能怎么样?有没有测试过?

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-1-23
最后登录
2019-3-7
在线时间
941 小时
阅读权限
90
积分
168110
帖子
160
主题
7
精华
0
UID
1171
发表于 2012-5-15 09:59:47 |显示全部楼层
功能强大,但不能从各个节点取文件 到本机。

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-2-11
最后登录
2020-6-27
在线时间
157 小时
阅读权限
90
积分
27374
帖子
36
主题
3
精华
0
UID
11962
发表于 2012-5-15 16:10:10 |显示全部楼层
试用了下 , 不错,必须顶一个

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-12-26
最后登录
2015-12-4
在线时间
211 小时
阅读权限
90
积分
43202
帖子
158
主题
1
精华
0
UID
11579
发表于 2012-5-16 14:23:02 |显示全部楼层
先收了~~谢楼主

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2021-3-9 11:21 , Processed in 0.020437 second(s), 8 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部