当前位置: 首页 > 科技观察

黑屏操作利器,多屏批量shell命令发送

时间:2023-03-21 15:50:56 科技观察

web系统常见开发流程:日常->预发布->上线通常集成只有一台机器,大家的开发分支都会在上面做合并部署。当一个应用被很多人开发,被很多应用依赖时,就会出现问题。日常环境UI开发和测试的成功取决于这个应用提供的服务,但是频繁的发布会导致短暂的中断,从而阻塞进程。为了不阻塞单点集成机,可以考虑以正式批量发布的形式设置两台日常机,保证日常环境中必须有一台机器时刻提供服务。此解决方案存在问题。以前调试只需要关心一台机器查看日志,登录就可以了。现在变成两台机器了。app-|-->vmNo.1->log\-->vmNo.2->log这个问题会继续扩大。如果是单元化应用,单元也会有机器。按照上面的方法,再乘以2,则一共变成了4台机器。你有看到它吗?这个时候很头疼。哪台机器会落在测试点击UI上?app-|-center-|-->vmNo.1->log|\-->vmNo.2->log|-unit-|-->vmNo.3->log\-->vmNo.4->log想个简单的办法解决这个问题,tmux作为一个linux的多屏工具,第一次看到这个工具是用HHKB的哥们。tmux的基本概念参考http://cenalulu.github.io/lin...上的图:session:session,我们可以定义一组逻辑要做的事情作为一个session,比如这个session我们是做应用程序的日常开发。window:窗口就是我们在屏幕上看到的控制台界面。它可以像iTerm2一样有多个标签页。其实概念上也可以直接理解为标签页。panel:在大窗口上,为了直接看到多台登录机器的状态,可以拆分这个窗口,常用快捷键ctrl+b,%垂直切屏(window)ctrl+b,》水平切屏(window)切换窗口ctrl+b+窗口号ctrl+b+n切换到下一个窗口ctrl+b+p切换到上一个窗口切换面板ctrl+b+上、下、左、右,移动到想要的面板和调整面板大小ctrl+balt+left或right调整垂直面板的大小ctrl+balt+up或down调整水平面板的大小,如下图,增加右侧面板的大小页面操作更像是vi中的纯键盘操作,ctrl+b,[切换到复制模式。然后用ctrl+b返回,ctrl+f前进翻页。看multi的大招-machineshellscreenandsendcommandstomultiplepanelctrl+b,:setwsynchronize-panes这是今天的重点,之前说过,如果日常机器需要登录扩展到4?想象一下,我们计划连接4台机器。这个可以用来切窗得到多个面板解决了,我们的目的是看日志,这个操作在每台机器上都是完全一样的:cdxxx/xxx/xxxtail-fxxx.log那么有没有办法同步发送我们输入到所有面板的命令(所有登录机器上)?当然可以通过设置一个模式来解决。设置ctrl+b,:setwsynchronize-panes成功后,输入一个面板会同步到所有面板,如下,我只输入一个面板测试。想取消怎么办?再次输入相同的命令(synchronize-panes)以取消此模式。文件中可以配置tmux的一些默认配置函数,路径为:~/.tmux.confshare我目前使用的是:set-option-gdefault-shell/bin/zshsetw-gmode-keysviset-option-gdefault-command“重新附加到用户命名空间-lzsh”设置窗口选项-gmode-mouseonset-gmouse-select-paneonset-gmouse-resize-paneonset-gmouse-select-windowon#Setup'v'tobeginselectionasinVimbind-key-tvi-copyvbegin-selectionbind-key-tvi-copyycopy-pipe“reattach-to-user-namespacepbcopy”#Updatedefaultbindingof`Enter`toalsousecopy-pipeunbind-tvi-copyEnterbind-key-tvi-copyEntercopy-pipe“reattach-to-user-namespacepbcopy”#bindareloadkeybindRsource-文件~/.tmux.conf;显示消息“Configreloaded..”