V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
KentY
V2EX  ›  分享创造

[Linux|Tmux]早先写的一个用于备份/恢复 tmux sessions 的, tmux 用户可以试试

  •  
  •   KentY ·
    sk1418 · 2014-07-31 21:36:01 +08:00 · 4222 次点击
    这是一个创建于 3795 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目主页: https://github.com/sk1418/retmux

    自己用了多半年了觉得还行
    大概功能:

    #Features

    - configurable options for (logging, ANSI escapes)
    - (non- or) interactive operations (list/delete/restore/backup)
    - highlighted output
    - most important: tmux sessions backup and restore :)

    #What can be backuped/restored?

    - sessions : with names, terminal-size
    - windows : with name, order, pane split and split layout
    - panes : with path and content(up to 100000 line history content) with same look and feel (ANSI escapes)


    #What would NOT be backuped/restored?

    - the processes/programs running in window or pane at backup time
    - the logined user, if the user is not same as the user who started tmux.(e.g. after su)
    - command history in each window
    - buffer stacks (could be done, but didn't see the need)

    简单那中文解释就是能备份我们tmux所创建的session, windows, window name, layout, pane layout, 以及每个window/pane的当前路径, 和里面的文字(保持高亮), 以后可恢复.

    可以自己定义备份的名字, 恢复时选择恢复, 具体信息请看主页, 自己试验下就知道了, 没什么依赖要安装.
    9 条回复    2017-03-24 11:24:07 +08:00
    tontinme
        1
    tontinme  
       2014-08-01 16:56:10 +08:00
    这么好的分享,赞一个。顺便升级了下python和tmux,不兼容低版本的python和tmux
    KentY
        2
    KentY  
    OP
       2014-08-01 17:47:18 +08:00
    @tontinme

    谢谢试用. 在项目页面写了retmux的开发/运行环境.

    tmux 不同版本都有或大或小的新功能. 当用retmux去备份/恢复一个功能, 你当前tmux版本不具备,自然就出问题了. :)

    再说, 一般用tmux的都是每天必用, 更新还是必要的吧.
    terrortang
        3
    terrortang  
       2014-08-04 10:39:59 +08:00
    我一直用一个sh,https://github.com/mislav/dotfiles/blob/9a9de5ccd0a89480936acaf5333cf7b288e3fa82/bin/tmux-session , 自己稍微改了一下,还比较方便
    KentY
        4
    KentY  
    OP
       2014-08-04 15:43:59 +08:00
    @terrortang

    我是个比较懒的人, 在我写retmux之前, 我曾经查找或试用过挺多类似的. 包括你那个. 但是都不怎么满意, 才不得已got hand dirty....

    这个我写好后, 半年多,只修改过小bug, 没加什么新功能, 因为我自己用着比较满意了.

    如果你仔细比较, 我的这个还有你引用的那个在功能上还是有挺多不同的.
    terrortang
        5
    terrortang  
       2014-08-04 15:54:14 +08:00
    @KentY 对,的确是。我也是比较懒,当初就找了这个,然后其实平时用的最多的就是save session和restore session,就也没有多做添加,就在我引用的那个上面改了一下兼容性.
    KentY
        6
    KentY  
    OP
       2014-08-04 16:25:24 +08:00
    @terrortang 也许和tmux使用习惯有关. 我习惯在window里分pane, 所以如果tmux server重启, 我希望恢复到一个和以前"相同(read 最相似)"的环境, 比如pane分布布局, pane/win中的当前路径, 以及pane/win中的内容.因为有常选择输出的文字.

    可能也正因为这些习惯/需求, 我才"不得不"自己写了个retmux.. :)
    jprovim
        7
    jprovim  
       2014-08-05 02:59:49 +08:00
    @kenty, 以前也用過你的, 但是發現了一個更好的, 叫tmuxinator, 你肯定是很喜歡的.
    KentY
        8
    KentY  
    OP
       2014-08-05 16:29:45 +08:00
    @jprovim

    这个我知道. 也用过一阵. 和retmux有类似的地方也有不同. 相同的都是,可以快速便捷地启动/恢复tmux session(s). 包括里面的东西. 但着眼点不同,tmuxinator是快速启动一个预定义的session;retmux是尽可能恢复到备份时的tmux server的最相似状态.

    tmuxinator > retmux的:

    - session等信息保存在配置文件(文本), 修改起来相对方便
    - 可以启动默认进程, 比如git/ssh之类的

    retmux > tmuxinator:

    - 目的是恢复到保存时最相似的tmux环境,所以备份(或说导出成project)容易, 不用编辑配置文件(也有文件json格式),只在tmux里弄好了, tmux -b 马上备份一个. 或知道server要重启了, tmux -b一个
    - 恢复不是某个session, 而是备份时tmux server的sessions
    - tmux窗口的内容文字也被恢复,保持高亮
    - 有interactive mode, 帮助管理(查看, 恢复, 删除)详细备份列表
    freestyle
        9
    freestyle  
       2017-03-24 11:24:07 +08:00
    cool 已 star
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.