4 个版本
0.5.7 | 2024年8月14日 |
---|---|
0.5.6 | 2024年8月14日 |
0.5.5 | 2024年8月14日 |
0.5.4 | 2023年8月29日 |
#315 在 命令行工具
330 每月下载量
75KB
1K SLoC
tmux-backup
Tmux 会话的备份与恢复解决方案。
版本要求: rustc 1.74+
特性
- 备份和恢复您的 tmux 环境
- tmux 会话窗口、面板,包括布局、标题和面板历史记录
- 当前会话和最后会话。
- 快速:16 个会话、45 个窗口和 80 个面板小于 1 秒。
- 显示备份目录,包括年龄、文件大小、内容描述和归档格式
- 提供两种策略
- 保留最近的
n
个备份 - 经典备份策略
- 过去 24 小时内每小时最新的备份(最多 23 个备份 - 排除过去一小时),
- 过去 7 天内每天最新的备份(最多 6 个备份 - 排除过去 24 小时),
- 过去 4 周每周最新的备份(最多 3 个备份 - 排除过去一周),
- 今年每月最新的备份(最多 11 个备份 - 排除过去一个月)。
- 保留最近的
- 因为您决定备份存储的位置,您可以使用这两种策略,结合高频率备份和类似 tmux-resurrect 的按需备份的优点。
入门指南
安装后(见下文),您可以从命令行或通过 tmux 绑定使用它。
默认情况下,目录位于 $XDG_STATE_HOME/tmux-backup/
,或否则为 §HOME/.state/tmux-backup
。默认策略是 "最近",但您可以使用 --strategy classic
修改它。使用 tmux-backup --help
查看用法以获取详细信息。
查看现有备份的目录
$ tmux-backup catalog list --details
Strategy: KeepMostRecent: 10
Location: `$HOME/.local/state/tmux-backup`
NAME AGE STATUS FILESIZE VERSION CONTENT
11. backup-20220907T224553.156103.tar.zst 2 days purgeable 644.17 kB 1.0 16 sessions 43 windows 79 panes
10. backup-20220907T224926.103771.tar.zst 2 days retainable 644.38 kB 1.0 16 sessions 43 windows 79 panes
9. backup-20220908T092341.125258.tar.zst 2 days retainable 654.76 kB 1.0 16 sessions 43 windows 79 panes
8. backup-20220909T224742.781818.tar.zst 18 hours retainable 599.64 kB 1.0 16 sessions 42 windows 77 panes
7. backup-20220909T225158.305403.tar.zst 18 hours retainable 600.32 kB 1.0 16 sessions 42 windows 79 panes
6. backup-20220910T152551.807672.tar.zst 1 hour retainable 608.79 kB 1.0 16 sessions 43 windows 80 panes
5. backup-20220910T165118.250800.tar.zst 29 minutes retainable 614.16 kB 1.0 16 sessions 43 windows 80 panes
4. backup-20220910T171812.893389.tar.zst 2 minutes retainable 614.33 kB 1.0 16 sessions 43 windows 80 panes
3. backup-20220910T172016.924711.tar.zst 11 seconds retainable 614.44 kB 1.0 16 sessions 43 windows 80 panes
2. backup-20220910T172019.320809.tar.zst 8 seconds retainable 614.42 kB 1.0 16 sessions 43 windows 80 panes
1. backup-20220910T172024.141993.tar.zst 3 seconds retainable 614.38 kB 1.0 16 sessions 43 windows 80 panes
11 backups: 10 retainable, 1 purgeable
如果您已将插件配置安装到 tmux 中,则默认的 tmux 列出备份的绑定是
prefix + b + l
显示简单目录prefix + b + L
显示详细目录(包括文件大小、版本和内容列)
这两个绑定都会打开一个显示目录内容的 tmux 弹出窗口。
保存当前的 tmux 环境
$ tmux-backup save
✅ 16 sessions 43 windows 80 panes, persisted to `/Users/graelo/.local/state/tmux-backup/backup-20220910T171812.893389.tar.zst`
默认情况下,tmux保存新备份的绑定是
prefix + b + s
保存并压缩(删除可清除的备份)prefix + b + b
保存但不压缩目录
这两个绑定都会在tmux状态栏中打印相同的报告。
从备份中恢复
在tmux之外的shell中键入 tmux-backup restore
将
- 启动tmux服务器(如果没有运行的话)
- 从最新的备份中恢复所有会话
- 但您仍然需要
tmux attach -t <你的-最后一个-会话>
在tmux内部的shell中键入相同的命令将擦除会话 0
(默认启动会话)并原地恢复您的tmux环境。
默认情况下,tmux恢复最新备份的绑定是
prefix + b + r
从最新备份中恢复会话
安装
安装二进制文件
在macOS上
brew install graelo/homebrew-tap/tmux-backup # will also install shell completions
在linux上
curl \
https://github.com/graelo/tmux-backup/releases/download/v0.4.0/tmux-backup-x86_64-unknown-linux-gnu.tar.xz \
| tar xf - > /usr/local/bin/tmux-backup
chmod +x /usr/local/bin/tmux-backup
在linux上,要安装补全,请键入
tmux-backup generate-completion zsh|bash|fish > /path/to/your/completions/folder
安装tmux插件钩子
键入
mkdir ~/.tmux/plugins/tmux-backup
tmux-backup init > ~/.tmux/plugins/tmux-backup/tmux-backup.tmux
如果您不使用 tpm,只需将其添加到您的 .tmux.conf
source-file ~/.tmux/plugins/tmux-backup/tmux-backup.tmux
或者,如果您使用tpm,在您的 ~/.tmux.conf
中声明tmux-backup插件给TPM
set -g @tpm_plugins ' \
tmux-plugins/tpm \
tmux-plugins/tmux-backup \ <-- here
tmux-plugins/tmux-copyrat \
tmux-plugins/tmux-yank \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-sessionist \
'
下次您启动tmux时,将加载 tmux-backup.tmux
配置。
注意事项
- 这是一个测试版本
- 不处理多个客户端:如果您对此有明确的场景,欢迎提供帮助。
- 不处理会话组:也欢迎提供帮助。
许可
根据您的选择,许可如下
。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,如Apache-2.0许可证中定义的,将如上所述双许可,不附加任何额外的条款或条件。
依赖
~15–30MB
~410K SLoC