前言

终端登录管理方案非常成熟除了耳熟能详的跨平台付费方案SeureCRT,Windows有Xshell,macOS有iTerm2,不过在macOS下想用到类似SecureCRT和Xshell一样的Send to all功能可能就没有这么方便了,而csshX正好可以满足批量管理操作的需求

使用csshX同步管理多个SSH会话

更新历史

2020年10月20日 - 更新csshx在macOS Catalina的使用
2018年11月26日 - 初稿

阅读原文 - https://wsgzao.github.io/post/csshx/

扩展阅读

csshx - https://github.com/brockgr/csshx


csshx简介

As csshX is a command line tool, no special installation is needed. It maybe copied into a directory in your path, (e.g. /usr/local/bin) for your convenience.

The software has been tested on Mac OS X 10.5, 10.6 and 10.7 with the default Perl installation - no additional Perl modules are required.

DOCUMENTATION:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
The documentation for csshX is self contained. Please run:

csshX --man

NAME
csshX - Cluster SSH tool using Mac OS X Terminal.app

SYNOPSIS
csshX [--login username] [--config filename] [ [user@]host1[:port]
[[user@]host2[:port]] .. ]

csshX [-h | -m | -v ]

DESCRIPTION
csshX is a tool to allow simultaneous control of multiple ssh sessions.
host1, host2, etc. are either remote hostnames or remote cluster names.
csshX will attempt to create an ssh session to each remote host in
separate Terminal.app windows. A master window will also be created.
All keyboard input in the master will be sent to all the slave windows.

To specify the username for each host, the hostname can be prepended by
user@. Similarly, appending :port will set the port to ssh to.

You can also use hostname ranges, to specify many hosts.

OPTIONS
-l username, --login username
Remote user to authenticate as for all hosts. This is overridden by
user@.

-c configfile, --config configfile
Alternative config file to use

-h, --help
Quick summary of program usage

-m, --man
Full program man page

使用brew安装csshx

Name: csshx
Use: Cluster ssh tool for Terminal.app
URL: https://github.com/brockgr/csshx

1
2
3
4
5
# 安装homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
# 安装csshx
brew install csshx

csshx使用

当我们管理数十台或更多 Linux 服务器的时候,往往需要在每台服务器上执行同样的命令,比如我们想一次查看 10 台服务器(node)上系统负载情况,或者想知道哪台服务器有剩余内存可以分给新客户,又或者想执行 df 命令看看哪个服务器上还有多的硬盘空间等等,除了可以用脚本或工具统一收集这些信息外,我们还可以考虑使用一些同步管理多个 SSH 会话的小工具来帮助管理多台服务器,节省时间提高管理效率。在 Linux 上可以用 pdsh、ClusterSSH 和 mussh;在 Mac 上可以用 csshX.

1
2
3
4
5
6
7
8
9
10
11
# 使用 csshX 很简单,如果要同时 ssh 到 4 个服务器可以直接传递IP
csshX 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4

# 也可以把这些要 ssh 管理的 IP 写到一个文件里,然后加载这个文件,[user@]host1[:port]
vi hosts
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4

csshX --hosts hosts

其他问题

csshx is not working in New Mac OS Release MacOS Mojave

https://github.com/brockgr/csshx/issues/94

brew install parera10/csshx/csshx
1
2
3
4
5
6
# If you already have installed it:
brew remove csshx
# Then add the tap:
brew tap parera10/csshx
# Then install it again:
brew install parera10/csshx/csshx
文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. csshx简介
  4. 4. 使用brew安装csshx
  5. 5. csshx使用
  6. 6. 其他问题