我的 Linux 时光机——Snapper系统级自动备份工具

生活在 Linux 下,折腾肯定是少不了的,所以玩坏的情况也是常有的事情。如果有一台时光机器可以让系统回到某个时间点那就好办了,所以今晚介绍的软件是 Snapper。


Snapper 是一个由 openSUSE 的 Arvin Schnell 开发的工具,用于管理 Btrfs 子卷和 LVM 精简配置 (thin-provisioned) 卷。它可以创建和比较快照,在快照间回滚,并支持自动按时间序列创建快照。

安装

直接用你的包管理器安装 snapper 即可。
如果找不到这个软件就去官网下载:http://snapper.io/

前端界面

如果你需要一个界面工具来管理,那么安装这个:
https://github.com/ricardomv/snapper-gui

在安装界面之前你需要先安装依赖:

sudo apt install python3 libgtksourceview-3.0-1 gir1.2-gtksource-3.0 python3-dbus python3-setuptools

然后安装界面:

$ git clone https://github.com/ricardo-vieira/snapper-gui/
$ cd snapper-gui/
$ sudo python3 setup.py install

安装虽然完成了,不过有一点需要修改一下,Snapper 只有在 root 用户下才能对全系统备份,所以改一下 Snapper GUI 的启动命令以便使用 root 启动(sudo snapper-gui)。

创建一个备份

在为 btrfs 子卷建立一个 snapper 配置前,这个子卷必须已经存在。否则,你应该在建立 snapper 配置前创建它。

界面操作

新建一个快照配置

全系统备份,直接设置根目录即可。


设置根目录

命令行操作

要为位置为 / 的 btrfs 子卷创建一个新的 snapper 配置文件,并命名为 config:

# sudo snapper -c config create-config /

Snapper 每个小时自动创建一次快照,默认保留最新的 30 个快照,旧的快照会被自动清理。用户手动创建的快照不会被自动清理。

手动创建一个快照:

# sudo snapper create -d "关于本次手动备份的说明"

恢复到指定快照

恢复到某个时间点:

snapper undochange  <编号1>..0

删除快照

sudo snapper delete <编号>

完整用法

用法:snapper  [--全局选项] <命令> [--命令选项] [命令参数]

    全局选项:
    --quiet, -q         静默正常输出。
    --verbose, -v           显示调试信息。
    --utc               以 UTC 显示日期和时间。
    --iso               以 ISO 格式显示日期和时间。
    --table-style, -t <样式>  表格样式 (整数)。
    --config, -c <配置名称>         设置要使用的配置名称。
    --no-dbus           不是用 DBus。
    --root, -r <路径>     在目标根目录上操作(不用 DBus 时才起作用)。
    --version           打印版本号并退出。

  列出配置:
    snapper list-configs

  创建配置:
    snapper create-config <子卷>

    'create-config' 命令的选项:
    --fstype, -f <文件系统类型>       手动设置文件系统类型。
    --template, -t <名称>         要使用的配置模板名称。

  删除配置:
    snapper delete-config

  获取配置:
    snapper get-config

  设置配置:
    snapper set-config <配置数据>

  列出快照:
    snapper list

    'list' 命令的选项:
    --type, -t <类型>         要列出的快照类型。
    --all-configs, -a       列出所有可访问配置中的快照。

  创建快照:
    snapper create

    'create' 命令的选项:
    --type, -t <类型>         快照类型。
    --pre-number <编号>       相关的前期快照编号。
    --print-number, -p      打印所创建快照的编号。
    --description, -d <描述>  快照描述。
    --cleanup-algorithm, -c <算法>    快照的清理算法。选项:number, timeline, empty-pre-post。
    --userdata, -u <用户数据>   快照的用户数据。
    --command <命令>  运行命令,创建前期和后期快照。

  修订快照:
    snapper modify <编号>

    'modify' 命令的选项:
    --description, -d <描述>  快照描述。
    --cleanup-algorithm, -c <算法>    快照的清理算法。选项:number, timeline, empty-pre-post。
    --userdata, -u <用户数据>   快照的用户数据。

  删除快照:
    snapper delete <编号>

    “delete”命令的选项:
    --sync, -s          删除后同步。

  挂载快照:
    snapper mount <编号>

  卸载快照:
    snapper umount <编号>

  对比快照:
    snapper status <编号1>..<编号2>

    'status' 命令的选项:
    --output, -o <文件>       保存状态到文件。

  对比快照:
    snapper diff <编号1>..<编号2> [文件]

    “diff”命令的选项:
    --input, -i <文件>        读取文件以比较文件的差异。
    --diff-cmd <命令>     用于比较文件的命令。
    --extensions, -x <选项>   传递到 diff 命令的额外选项。

  对比快照的扩展属性:
    snapper xadiff <编号1>..<编号2> [文件]

  取消更改 (回滚):
    snapper undochange  <编号1>..<编号2> [文件]

    'undochange' 命令的选项:
    --input, -i <文件>        读取要回滚的文件。

  回滚:
    snapper rollback [编号]

    'rollback' 命令的选项:
    --print-number, -p      打印所创建的第二个快照的编号。
    --description, -d <描述>  快照描述。
    --cleanup-algorithm, -c <算法>    快照的清理算法。选项:number, timeline, empty-pre-post。
    --userdata, -u <用户数据>   快照的用户数据。

  Setup quota:
    snapper setup-quota

  清空快照:
    snapper cleanup <清理算法>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,002评论 9 467
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,043评论 25 707
  • 人人都希望一棵心如桃花般地绽放在春风里,该又是何等的惬意! 没人不渴想一棵心象一只穿过花丛,掠过云梢鸟儿般的轻松写...
    云可彦阅读 230评论 0 0
  • 楚山清晓听寒意, 池水微扬写冬心。 砚边若无写经笔, 但看残纸无俗情。
    風無意聽濤畫苑阅读 253评论 2 5