欢迎访问我的博客,你的支持,是我最大的动力!

polysh-交互式同时操作多台服务器的工具

Linux 小马奔腾 96℃ 评论

项目地址https://github.com/innogames/polysh

polysh是交互式远程shell多路复用器,可以实现在一个shell中一次控制多个远程shell,并且不同的远程shell会以颜色做区分。因为是交互式方式,非常适合批量执行一些简单的查询、启停服务等指令,对输出内容较多的指令,效果会差很多。

注意,polysh需要python>=3.5

基本使用

以!为前缀的命令会在本地执行,信号量 ctrl-c 和 ctrl-d 会被转发到远端

--version
--help
--hosts-file=FILE    主机文件,一行一个,以#开头及空行会被忽略
--command=CMD 需要在远端执行的命令,这将以非交互模式启动,退出代码取所有远端shell退出码的最大值
--ssh=SSH              默认为exec ssh -oLogLevel=Quiet -t %(host)s %(port)sexec ssh -oLogLevel=Quiet -t %(host)s exec bash --noprofile
远程连接的命令,可添加随机延时,如:--ssh='usleep $((RANDOM*50)); exec ssh'
--user=USER
--no-color              禁用彩色主机名
--password-file=FILE   提供密码(当公钥认证不可用时)
--log-file=LOG_FILE    为每台机器分别记录日志
--abort-errors        出错时退出程序
--debug

控制指令

:set_log [LOCAL_PATH] 控制日志
:set_debug
:add NAMES 添加远程主机
:chdir LOCAL_PATH
:disable [SHELLS...] 禁用发送命令到远端shell 支持*?[]
:enable [SHELLS...] 当启用一个已启用的shell时,将会禁用所有其他的shell
:export_vars 为远端设置环境变量
POLYSH_NR_SHELLS shell总数
POLYSH_RANK 某个shell的编号
POLYSH_NAME POLYSH_DISPLAY_NAME 主机名称
:hide_password 禁止回显
:list [SHELLS...] 列出远端shell及状态 格式:<hostname> <enabled?> <state>: <last printed line>
:purge [SHELLS...] 移出远端shell
:quit 退出
:reconnect [SHELLS...] 重新连接
:rename [NEW_NAME]
:reset_prompt [SHELLS...]
:send_ctrl LETTER [SHELLS...] 发送控制字符
:set_debug y|n [SHELLS...]
:show_read_buffer [SHELLS...]

应用
polysh --ssh="ssh -p 22" --hosts-file=myhost.txt --user=root --password-file=mypass.txt

匹配方式
polysh server0{1,2}
polysh server01 server03
polysh 'server0<1-4>'  myserver01 myserver02  #注意 使用尖括号时,一定要添加引号,否则会直接解析为主机名
polysh server-{a01,b01}

转载请注明:轻风博客 » polysh-交互式同时操作多台服务器的工具

喜欢 (0)or分享 (0)