SSH 断连不丢活:tmux 的三个日常用法

举报
yiboyun 发表于 2026/11/04 07:13:03 2026/11/04
【摘要】 远程服务器上跑一个耗时任务,最怕的就是本地网络一抖、SSH 一断,任务跟着没了。把任务绑在终端会话里,而不是绑在某一次 SSH 连接上,是最省事的解法。tmux 就是干这个的:它在服务器上维持会话,SSH 断了会话还在,重连后 attach 回去,任务和输出都原样在那。第一个用法是新建并 detach。登录服务器后先 tmux new -s 任务名,比如 tmux new -s deploy...

远程服务器上跑一个耗时任务,最怕的就是本地网络一抖、SSH 一断,任务跟着没了。把任务绑在终端会话里,而不是绑在某一次 SSH 连接上,是最省事的解法。tmux 就是干这个的:它在服务器上维持会话,SSH 断了会话还在,重连后 attach 回去,任务和输出都原样在那。

第一个用法是新建并 detach。登录服务器后先 tmux new -s 任务名,比如 tmux new -s deploy,在这个会话里启动你的长任务。需要断开时按 Ctrl-b 再按 d,会话就回到后台,你可以放心关掉 SSH;想回来时 tmux attach -t deploy,屏幕和之前离开时一模一样。会话名起得有意义很重要,deploy、backup、build 这种名字,一周后回来也能一眼认出来,比默认的数字编号好找得多。

第二个用法是多窗口分工。一个会话里可以开多个窗口:Ctrl-b c 新建窗口,Ctrl-b n 切到下一个,Ctrl-b p 回上一个,Ctrl-b 数字 直接跳到指定窗口。常见分法是:一个窗口跑主任务,一个窗口看日志 tail -f,一个窗口留着敲临时命令,互不干扰。窗口多了记不住顺序时,Ctrl-b w 会列出所有窗口,上下选一个回车就过去,比一个个翻快。

第三个用法是分屏对照。Ctrl-b % 左右分屏,Ctrl-b " 上下分屏,Ctrl-b 方向键 在分屏之间移动。分屏适合对照着看:一边跑着任务输出,一边看配置文件或日志;或者一边是正在跑的命令,一边留着一个随时能敲命令的 shell。分屏不是为了好看,而是让“看”和“改”不用反复切换窗口,眼睛和手都少折腾。

还有两个容易踩的坑。第一,任务启动前先确认自己在 tmux 里:直接在普通 SSH shell 里跑长任务,断连照样会丢,tmux 必须在启动任务之前就建好。第二,服务器重启后 tmux 会话不会自动恢复,会话只保“断连”,不保“重启”,重启前的重要任务还是要确认它本身有断点续跑或后台化,别把 tmux 当成持久化方案。

一句话总结:长任务先 tmux new -s 名字,用 Ctrl-b d 离开、用 attach 回来,窗口和分屏按“跑任务、看日志、敲命令”分开,SSH 断连就从事故变成小插曲。今天就可以顺手试一次:建个会话、跑个 sleep、detach、断开重连、再 attach 回来,流程走通一次,以后长任务就不用再提心吊胆了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。