github地址:`https://github.com/agentzh/sshbatch`
作者是著名的 `agentzh`
经常会碰到集群操作同一条命令和把文件上传到集群的功能,sshbatch完美的帮助你解决这个问题。
###安装:
可以参照github的文档进行安装,包含
`fornodes`, `atnodes`, `tonodes`, `key2nodes`四个工具
####fornodes:
匹配机器列表,支持[1-100]这种模式,
在home目录下建立.fornodesrc文件,类似ssh目录的config文件
而且支持很多复杂的运算。
如:
foo=user@test[1-5].com
####atnodes
集群机器执行同一条命令
如:
```
atnodes 'tail -f /tmp/access.log' '{foo}'
```
这条命令就可以同时看5台机器的日志了。
####tonodes
把本地文件同时上传到集群机器
上传单个文件
```
tonodes ~/my.tar.gz '{A} / {B}' :/tmp/
```
上传多个文件或目录,与后面的机器名用 -- 隔开
```
tonodes -r ~/mydir ~/mydir2/*.so -- foo.com bar.cn :~/
```
默认用的是scp,换成rsync
```
tonodes foo.txt 'ws1105*' :/tmp/bar.txt -rsync
```
####key2nodes
若你本地的~/.ssh/目录下没有公钥和私钥的话会帮你生成, 并且把ssh公钥上传到集群机器中,跟ssh-copy-id作用类似,但ssh-copy-id没有帮你生成公钥私钥的功能。
```
key2nodes '{foo}'
```
`https://github.com/agentzh/sshbatch` 页面上还有许多强大的功能,有需要可以多查阅。