multissh

并行 SSH 执行工具
授权协议 Apache
开发语言 Google Go
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 国产
投 递 者 於乐
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

multissh

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

支持:

  • 并发执行

  • 单次执行多条命令

  • ip 地址段自动匹配主机(192.168.0.1-192.168.0.100)

  • ssh 用户名/密码认证

  • ssh key 认证

  • json 格式输出

  • 输出到文本,文件名为 host.txt

编译

go get ./...
go build

release

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

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

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

命令体系

# ./multissh -h
Usage of ./multissh:
  -c string
        cfg File Path
  -ciphers string
        ciphers
  -cmdfile string
        cmdfile path
  -cmds string
        cmds
  -hostfile string
        hostfile path
  -hosts string
        host address list
  -ipfile string
        ipfile path
  -ips string
        ip address list
  -j    print output in json format
  -k string
        ssh private key
  -l    In linux mode,multi command combine with && ,such as date&&cd /opt&&ls
  -n int
        max execute number (default 20)
  -outTxt
        write result into txt
  -p string
        password
  -port int
        ssh port (default 22)
  -t int
        max timeout (default 30)
  -u string
        username
  -v    show version

cmdfile 示例

show clock

hostfile 示例

192.168.31.21
192.168.15.102

ipfile 示例

192.168.15.101-192.168.15.103
192.168.31.21-192.168.31.22

ssh.json 示例

{
    "SshHosts": [
        {
            "Host": "192.168.31.51",
            "Port": 22,
            "Username": "admin",
            "Password": "admin",
			"cmds":"show clock;show clock"
        },
        {
            "Host": "192.168.80.131",
            "Port": 22,
            "Username": "root",
            "Password": "",
            "key": "./server.key",
            "linuxMode": true,
            "CmdFile": "cmd2.txt.example"
        }
    ]
}
 相关资料
  • 我有一个CircleCI配置,它的末尾有一个部署脚本。该命令应该SSH到服务器中,移动到目录并执行NPM脚本。看起来是这样的: 这将引发以下错误: 这表示服务器上没有安装NPM,但它安装了。为了测试这一点,如果我单独运行这些命令,它们就可以工作。 那么这里有什么问题?

  • 1.3 新版功能. 默认情况下,Fabric 会默认 顺序 执行所有任务(详细信息参见 Execution strategy ),这篇文档将介绍 Fabric 如何在多个主机上 并行 执行任务,包括 Fabric 参数设置、任务独立的装饰器,以及命令行全局控制。 它是如何运转的 由于 Fabric 1.x 并不是完全线程安全(以及为了更加通用,任务函数之间并不会产生交互),该功能的实现是基于 Py

  • 我有4个@Test方法,希望每个方法都运行3次。我想在12个线程中同时执行所有这些。 我创建了一个testng。像这样的xml文件 如果我设置并行="方法",TestNG在Test1的4个线程中执行4个测试方法,之后对Test2执行相同的操作,然后对Test3执行相同的操作。但是我不想在运行Test2之前等待Test1完成。TestNG能够运行Test1、Test2 有没有办法告诉TestNG不要

  • 我编写了两个功能文件,每个功能文件打开不同的浏览器URL,例如一个是open google。com和secnd一个开放的亚马逊。但事实并非如此。 两个浏览器都打开了谷歌。通用域名格式。此外,它不能与浏览器交互,任何编码到浏览器的操作都不会执行。此外,关闭第一个浏览器会导致第二个浏览器出现空指针异常。 cucumber版本6我从AbstractCucumberTesNG继承开始。然后我创建登录。功能

  • 本文向大家介绍Python实现ssh批量登录并执行命令,包括了Python实现ssh批量登录并执行命令的使用技巧和注意事项,需要的朋友参考一下 局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的。现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件,拷贝某些文件,批量关机等。如果一台一台得手工去操作,费

  • 以我的经验,一提到并发执行,90%的人都会提到线程,的确这玩意用的很广泛,综合来说各方面都还可以。虽然很多语言都内置了线程库,C++11也有了,但严格来说线程是跟操作系统相关,具体说,如果操作系统支持线程,则语言的线程库简单封装下就可以了,如果操作系统不支持(如一些unix系统),那就比较麻烦了,简单的可以去掉线程库,或接口返回异常,复杂的可能自己实现一个用户态的线程机制 一个语言实现中如果要用到