打造永不离线的Tmux开发环境
最近服务器经常重启,导致个人定制的Tmux开发环境总是失效,因此研究如何保存tmux环境的方法使其在机器重启后依然能够使用。
经过研究发现通过tmux插件tmux-resurrect
和tmux-continuum
插件组合能够满足我的需求,能够(定时)自动保存tmux会话到磁盘、自动加载会话功能。
其中插件resurrect负责手动保存会话(到文件)、恢复tmux会话环境,而continuum在rescurrect基础上能够进一步自动保存恢复会话。
项目地址
- tmux-rescurrect: https://github.com/tmux-plugins/tmux-resurrect
- tmux-continuum: https://github.com/tmux-plugins/tmux-continuum
插件安装
本人使用Tmux插件管理器TPM自动安装以上两个插件,也可以根据插件说明手动安装。
在~/.tmux.conf
配置文件中加入以下配置信息(前提是TPM已经安装):
# ~/.tmux.conf
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'
run -b '~/.tmux/plugins/tpm/tpm'
进入tmux环境后,按PREFIX + I
组合键安装插件。如果离线服务器使用,可以在有网络的机器安装成功后将~/.tmux/plugins
目录拷贝到离线服务器。
使用
tmux-resurrect手动操作通过快捷键完成保存、加载会话:
- PREFIX + CTRL s:保存会话
- PREFIX + CTRL r:加载会话
但continuum能够自动化完成以上操作。在~/.tmux.conf
加入continuum设置可以进一步自动保存、恢复会话功能,不需要手动操作。自动恢复仅在tmux服务器启动时发生,其它行为(比如source .tmux.conf)不能触发自动恢复。
set -g @continuum-save-interval '15' # 每隔15分钟自动保存会话
set -g @continuum-restore 'on' # 开启自动恢复会话功能
tmux环境会自动保存到文件中,这些文件放置在~/.tmux/resurrect
或者~/.local/share/tmux/resurrect
目录下。比如我保存的tmux环境
其中last指向最新保存的tmux环境,自动恢复最新的环境。当然你也可以通过last指向某个先前的tmux环境文件恢复先前的会话。
设置完成后就可以愉快的使用tmux了。意外惊喜是这种基于文件保存tmux环境方式在有多个登录节点的高性能集群环境中也能够快速恢复tmux会话环境。

