功能详解

命令列表

mmh 目前只支持 mac 和 linux 平台,对于 windows 用户在 WSL2 ubuntu 系统下已经测试通过。mmh 在安装时 仅会将原始二进制文件复制一份到安装目录(默认 /usr/local/bin),然后会采用软链接的方式创建其他快捷命令。 目前 mmh 已包含命令列表以及软链接如下:

其他 install 等命令为辅助命令,暂不做详细说明。

无限跳板

当服务器配置中配置了 proxy 字段后,mmh 将通过 proxy 指定的服务器来连接目标服务器。用户可以通过 直接执行 mmh 命令在下拉列表中选择服务器或直接使用 mgo 服务器名称 来连接到目标服务器。

Tips:

mmh 命令的下拉列表支持左右方向键翻页,单页面内支持 1~9 数字键快速跳转;无限跳板默认最多只能穿透 5 个跳板机,可以通过 max_proxy 进行调整:

basic:
...
servers:
...
tags:
...
max_proxy: 10

远程执行

mec 命令可对包含某 tag 的一组服务器进行批量的命令执行:

# 在所有包含 docker tag 的服务器上执行 docker pull nginx:latest
mec docker 'docker pull nginx:latest'

mec 默认是针对 tag 组服务器操作的,如果期望对单一服务器可以使用 -g false 选项:

# 在 prod11 服务器上执行 rm -rf /*
mec prod11 'rm -rf /*' -g false

批量复制

mcp 命令可以实现穿过跳板机将本地文件(夹)直接复制到远端服务器,其行为模式与无限跳板类似;目前其底层 通过标准的 sftp 协议传输保证其稳定性,但是由于其复杂逻辑,目前仅仅测试了以下情况:

# 将本地多文件复制到远端,文件列表混和包括单文件与目录
mcp dir1 dir1 file1 file2 prod11:~
# 将本地多文件批量(-g)复制到远端,文件列表包括单文件与目录
mcp dir1 dir1 file1 file2 docker:~ -g
# 将远端服务器文件/目录复制到本地
mcp prod11:~/file1 ./file1
mcp prod11:~/dir1 ./dir1

需要注意的是复制行为具有文件覆盖特性,相较于其他命而言令复制命令更容易造成不可恢复的故障;所以用户 在使用本命令前应当已经充分了解其带来的风险。

ping 检测

ping 检测依赖于宿主机 ping 命令,当执行 mping prod11 时会进行两种情况的判断:

端口映射

端口映射功能提供了简单易用的 “ssh 打洞” 功能,其整体参数分为 3 部分:

默认情况下将右侧的端口映射到左侧:

# 通过 prod11 的机器将 baidu.com:80 端口映射到本地
# 本地访问 127.0.0.1:8080 实际的流量传输为:
# 本地 -> 跳板机1 -> ... 跳板机n -> prod11 -> baidu.com:80
mtun -l 127.0.0.1:8080 -r baidu.com:80 prod11

使用 --reverse 选项可以将链路反转:

# 通过本地将 baidu.com:80 发布到 prod11 的 8080 端口 
# 远端 prod11 会监听 127.0.0.1:8080(netstat 查看监听进程为 ssh)
# 远端 prod11 访问 127.0.0.1:8080 会将流量穿透回本地然后发出
# prod11 -> 跳板机n -> 本地 -> baidu.com:80
mtun -l baidu.com:80 -r 127.0.0.1:8080 --reverse prod11
首页 上一页 下一页