Git Product home page Git Product logo

multissh's Introduction

multissh

一个简单的并行 SSH 工具,可以批量的对主机通过 SSH 执行命令组合。

编译

go get ./...
go build

release

可以直接下载编译好的 release 版本

提供 win64 和 linux64 两个平台的可执行文件

https://github.com/shanghai-edu/multissh/releases/

命令体系

./multissh -h
  -cmd string
        cmds // 需要执行的命令组合,多条命令以 ; 分割
  -cmdfile string
        cmdfile path //需要执行的命令组合文件,文件内命令按行分割
  -hostfile string
        hostfile path // 需要执行的主机列表文件,主机列表在文件内按行分割
  -hosts string
        host address list //需要执行的主机列表,多个主机以 ; 分割
  -ipfile string
        hostfile path //需要执行的主机(IP)列表文件,IP可以以地址段的方式逐行写在文本内
  -p string
        password // 主机的 SSH 密码
  -port int
        ssh port (default 22) //主机的 SSH 端口,默认 22
  -u string
        username //主机的 SSH 用户名
  -j string
        jsonFile //保存大量主机,包括主机地址,SSH用户名,SSH密码,SSH端口,所需执行的cmd指令文件地址
  -outTxt bool
        outTxt (default false) //是否允许把结果保存到文件中,文件名为 ssh 连接的主机名(host 或 ip),true为允许  false为默认值
  -t int
        timeLimit (default 30) //单个 ssh 会话的最大时间,超过时间命令未执行完则超时 默认为30s
  -n int
        numLimit (default 20) //最大并发访问量 默认为20
  -v    show version

cmdfile 示例

show clock

hostfile 示例

192.168.15.101
192.168.15.102

ipfile 示例

192.168.15.101-192.168.15.102

ssh.json 示例

{
    "SshHosts": [
        {
            "Host": "192.168.15.101", 
            "Port": 22, 
            "Username": "admin", 
            "Password": "admin", 
            "CmdFile": "cmd1.txt.example"
        }, 
        {
            "Host": "192.168.83.40", 
            "Port": 22, 
            "Username": "root", 
            "Password": "root", 
            "CmdFile": "cmd2.txt.example"
        }
    ]
}

用法

cmd string & host string

./multissh -cmd "show clock" -hosts "192.168.15.101;192.168.15.102" -u admin -p admin

192.168.15.101  ssh start
sw-1#show clock
05:26:40.649 UTC Tue Jun 6 2017
sw-1#exit

192.168.15.101  ssh end

192.168.15.102  ssh start
sw-2#show clock
05:24:38.708 UTC Tue Jun 6 2017
sw-2#exit

192.168.15.102  ssh end

cmdfile & hostfile

./multissh -cmdfile cmd.txt -hostfile host.txt -u admin -p admin

192.168.15.101  ssh start
sw-1#show clock
05:29:43.269 UTC Tue Jun 6 2017
sw-1#exit

192.168.15.101  ssh end

192.168.15.102  ssh start
sw-2#show clock
05:27:41.332 UTC Tue Jun 6 2017
sw-2#exit

192.168.15.102  ssh end

ipfile

./multissh -cmdfile cmd.txt -ipfile ip.txt -u admin -p admin

192.168.15.101  ssh start
sw-1#show clock
05:29:43.269 UTC Tue Jun 6 2017
sw-1#exit

192.168.15.101  ssh end

192.168.15.102  ssh start
sw-2#show clock
05:27:41.332 UTC Tue Jun 6 2017
sw-2#exit

192.168.15.102  ssh end

ssh.json

./multissh -j ssh.json -t 30 -n 20 -outTxt
192.168.15.101  ssh start
sw-1#show clock
05:29:43.269 UTC Tue Jun 6 2017
sw-1#exit

192.168.15.101  ssh end

192.168.83.40  ssh start
2017年 06月 09日 星期五 09:33:11 CST
2017年 06月 09日 星期五 09:33:14 CST
192.168.83.40  ssh end

TODO

增加使用证书认证的支持

LICENSE

Apache License 2.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.