生活在 Linux 下,折騰肯定是少不了的慈迈,所以玩壞的情況也是常有的事情。如果有一臺時光機器可以讓系統(tǒng)回到某個時間點那就好辦了,所以今晚介紹的軟件是 Snapper痒留。
Snapper 是一個由 openSUSE 的 Arvin Schnell 開發(fā)的工具谴麦,用于管理 Btrfs 子卷和 LVM 精簡配置 (thin-provisioned) 卷。它可以創(chuàng)建和比較快照伸头,在快照間回滾匾效,并支持自動按時間序列創(chuàng)建快照。
安裝
直接用你的包管理器安裝 snapper 即可恤磷。
如果找不到這個軟件就去官網(wǎng)下載: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 用戶下才能對全系統(tǒng)備份魔策,所以改一下 Snapper GUI 的啟動命令以便使用 root 啟動(sudo snapper-gui
)。
創(chuàng)建一個備份
在為 btrfs 子卷建立一個 snapper 配置前河胎,這個子卷必須已經(jīng)存在闯袒。否則,你應(yīng)該在建立 snapper 配置前創(chuàng)建它游岳。
界面操作
全系統(tǒng)備份政敢,直接設(shè)置根目錄即可。
命令行操作
要為位置為 / 的 btrfs 子卷創(chuàng)建一個新的 snapper 配置文件胚迫,并命名為 config:
# sudo snapper -c config create-config /
Snapper 每個小時自動創(chuàng)建一次快照喷户,默認保留最新的 30 個快照,舊的快照會被自動清理访锻。用戶手動創(chuàng)建的快照不會被自動清理褪尝。
手動創(chuàng)建一個快照:
# sudo snapper create -d "關(guān)于本次手動備份的說明"
恢復(fù)到指定快照
恢復(fù)到某個時間點:
snapper undochange <編號1>..0
刪除快照
sudo snapper delete <編號>
完整用法
用法:snapper [--全局選項] <命令> [--命令選項] [命令參數(shù)]
全局選項:
--quiet, -q 靜默正常輸出。
--verbose, -v 顯示調(diào)試信息朗若。
--utc 以 UTC 顯示日期和時間恼五。
--iso 以 ISO 格式顯示日期和時間。
--table-style, -t <樣式> 表格樣式 (整數(shù))哭懈。
--config, -c <配置名稱> 設(shè)置要使用的配置名稱灾馒。
--no-dbus 不是用 DBus。
--root, -r <路徑> 在目標(biāo)根目錄上操作(不用 DBus 時才起作用)遣总。
--version 打印版本號并退出睬罗。
列出配置:
snapper list-configs
創(chuàng)建配置:
snapper create-config <子卷>
'create-config' 命令的選項:
--fstype, -f <文件系統(tǒng)類型> 手動設(shè)置文件系統(tǒng)類型。
--template, -t <名稱> 要使用的配置模板名稱旭斥。
刪除配置:
snapper delete-config
獲取配置:
snapper get-config
設(shè)置配置:
snapper set-config <配置數(shù)據(jù)>
列出快照:
snapper list
'list' 命令的選項:
--type, -t <類型> 要列出的快照類型容达。
--all-configs, -a 列出所有可訪問配置中的快照。
創(chuàng)建快照:
snapper create
'create' 命令的選項:
--type, -t <類型> 快照類型垂券。
--pre-number <編號> 相關(guān)的前期快照編號花盐。
--print-number, -p 打印所創(chuàng)建快照的編號羡滑。
--description, -d <描述> 快照描述。
--cleanup-algorithm, -c <算法> 快照的清理算法算芯。選項:number, timeline, empty-pre-post柒昏。
--userdata, -u <用戶數(shù)據(jù)> 快照的用戶數(shù)據(jù)。
--command <命令> 運行命令熙揍,創(chuàng)建前期和后期快照职祷。
修訂快照:
snapper modify <編號>
'modify' 命令的選項:
--description, -d <描述> 快照描述。
--cleanup-algorithm, -c <算法> 快照的清理算法届囚。選項:number, timeline, empty-pre-post有梆。
--userdata, -u <用戶數(shù)據(jù)> 快照的用戶數(shù)據(jù)。
刪除快照:
snapper delete <編號>
“delete”命令的選項:
--sync, -s 刪除后同步意系。
掛載快照:
snapper mount <編號>
卸載快照:
snapper umount <編號>
對比快照:
snapper status <編號1>..<編號2>
'status' 命令的選項:
--output, -o <文件> 保存狀態(tài)到文件泥耀。
對比快照:
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 打印所創(chuàng)建的第二個快照的編號作郭。
--description, -d <描述> 快照描述陨囊。
--cleanup-algorithm, -c <算法> 快照的清理算法。選項:number, timeline, empty-pre-post夹攒。
--userdata, -u <用戶數(shù)據(jù)> 快照的用戶數(shù)據(jù)蜘醋。
Setup quota:
snapper setup-quota
清空快照:
snapper cleanup <清理算法>