tmux:SSH 断线也不丢的终端会话管理
【摘要】 tmux:SSH 断线也不丢的终端会话管理远程跑个长任务,最怕的就是 SSH 一断、命令跟着死:编译跑到一半、备份传到一半,窗口一关全白干。tmux 就是解决这个问题的:它在服务器上开一个“会话”,命令跑在会话里,你随时断开、随时回来接着看,会话本身不受影响。 一、装 tmux 与基本概念大多数发行版一行命令就能装:sudo apt install tmux # Debian...
tmux:SSH 断线也不丢的终端会话管理
远程跑个长任务,最怕的就是 SSH 一断、命令跟着死:编译跑到一半、备份传到一半,窗口一关全白干。tmux 就是解决这个问题的:它在服务器上开一个“会话”,命令跑在会话里,你随时断开、随时回来接着看,会话本身不受影响。
一、装 tmux 与基本概念
大多数发行版一行命令就能装:
sudo apt install tmux # Debian/Ubuntu
sudo yum install tmux # CentOS/RHEL
tmux 里有三个层级:会话(session)、窗口(window)、窗格(pane)。一个会话可以开多个窗口,每个窗口又能切成多个窗格。操作都以前缀键 Ctrl-b 开头:先按 Ctrl-b,松开,再按功能键。
二、最常用的四个操作
新建会话并起个名字:
tmux new -s deploy
在会话里正常跑命令,比如 make -j4。要断开时按 Ctrl-b 再按 d(detach),会话留在后台继续跑,SSH 断了也没事。
回来接着看:
tmux ls # 看看有哪些会话在跑
tmux attach -t deploy
任务跑完想彻底结束,在会话里直接 exit,或者 tmux kill-session -t deploy。
三、窗口与窗格:一个屏幕当多个用
Ctrl-b c:新建窗口Ctrl-b n/Ctrl-b p:切换到下一个 / 上一个窗口Ctrl-b 0~9:按编号直接跳到某个窗口Ctrl-b %:左右切分窗格;Ctrl-b ":上下切分窗格Ctrl-b 方向键:在窗格之间移动Ctrl-b x:关闭当前窗格
典型用法:一个窗口跑服务日志 tail -f,另一个窗口敲命令,再分个窗格看系统负载,互不干扰。
四、断线重连的正确姿势
SSH 断了不要慌,会话还在服务器上:
ssh user@服务器IP
tmux ls
tmux attach -t deploy
屏幕会原样恢复,包括还没看完的输出。如果 attach 时提示会话已有人连着,加个 -d 把旧连接踢掉:tmux attach -d -t deploy。
五、两个容易踩的坑
- 滚动查看历史输出:tmux 里鼠标滚轮默认不管用。按
Ctrl-b [进入复制模式,用方向键或 PageUp/PageDown 翻,q退出。想让鼠标直接能滚,在~/.tmux.conf里加一行set -g mouse on,重启 tmux 生效。 - 会话名别起得太随意:
deploy、backup-1108这种一眼能认出来的名字,半夜回来 attach 才不会连错。tmux ls列出来一眼就能对上。
小结
新建会话跑任务 → Ctrl-b d 断开 → tmux attach 回来接着看。就这三步,SSH 断线、本地电脑关机、网络闪断都不再是长任务的杀手。配合一个好记的会话名,远程运维的底气会足很多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)