我的 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 <清理算法>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,466評論 9 467
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,813評論 25 708
  • 人人都希望一棵心如桃花般地綻放在春風里,該又是何等的愜意! 沒人不渴想一棵心象一只穿過花叢,掠過云梢鳥兒般的輕松寫...
    云可彥閱讀 236評論 0 0
  • 楚山清曉聽寒意, 池水微揚寫冬心。 硯邊若無寫經筆, 但看殘紙無俗情。
    風無意聽濤畫苑閱讀 270評論 2 5