#备份 #tmux #tmux会话 #tmux插件 #归档格式 #tmux-resurrect

bin+lib tmux-backup

Tmux 会话的备份与恢复解决方案

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命令行工具

Download history 330/week @ 2024-08-12

330 每月下载量

MIT/Apache

75KB
1K SLoC

tmux-backup

crate documentation minimum rustc 1.74 rust 2021 edition build status

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