大多数时候,我用 SSH 命令行去连接我的远程服务器。不幸的是,今天断电了,网络集线器也关闭了,所以我的SSH会话丢失了。如果你的一个重要工作的SSH会话丢失了你会怎么办?这里有个叫做 Tmux 的简单工具,它会在 Putty 或者 SSH 会话结束之后保持一个进程记录你的工作。
Tmux 是一个终端复用器。它支持单个窗口多终端的创建、访问、控制。Tmux 在你在断开连接之后继续运行,当你重新连接就能获得之前的工作状态。
下面是具体的操作过程:
首先,在你的远程计算机里面安装 Tmux.
基于 RPM 的系统:
yum install tmux
基于 DEB 的系统:
apt-get install tmux
在安装 Tmux 之后 SSH 连接到你的远程计算机上,这里以 CentOS 7 为例。
ssh root@ip地址
打开你的终端,然后运行 Tmux.
tmux
然后运行你想执行的任务.
这里我以升级 CentOS 7 为例。
yum update
运行结果:
现在这个更新进程正在运行。然后按下”D”之后按下”Ctrl+B”来离开 tmux 会话.
现在,回到实际的终端,但是此时工作进程仍在 tmux 会话里面运行。用 SSH 断开并重新连接到远程计算机。在终端里输入 tmux attach
tmux attach
下图显示你的工作任务处于什么状态
类似的,你可以在 tmux 会话中运行你需要的任务,数目不限。当然,你可以通过 Ctrl-B 和 $ 对每个会话重命名。
你可以查看当前运行的 tmux 会话数目:
tmux list-sessions
结果举例:
0: 1 windows (created Thu Jan 8 15:13:42 2015) [80×23]
1: 1 windows (created Thu Jan 8 15:20:05 2015) [80×23]
Tmux 的功能远远不止以上所介绍的,我们可以在远程计算机上执行需要长时间执行的任务后断开连接,在之后的时间我们可以重新登录后通过 Tmux 查看运行状态。
你也可以通过以下命令查看更多内容:
man tmux