“Btrfs”的版本间的差异

来自wrc's Wiki
跳到导航 跳到搜索
 
第1行: 第1行:
 
== 备份 ==
 
== 备份 ==
  
[https://github.com/weirane/dosnap/ dosnap] 可用于定时备份。
+
[[#dosnap|dosnap]] 可用于定时备份。
  
 
备份到移动硬盘:
 
备份到移动硬盘:
第12行: 第12行:
  
 
以下是一些好用的 Btrfs 相关的程序。
 
以下是一些好用的 Btrfs 相关的程序。
 +
 +
=== [https://github.com/weirane/dosnap/ dosnap] ===
 +
 +
我写的一个类似 [https://github.com/openSUSE/snapper/ snapper] 的自动备份程序。在配置 <code>/etc/dosnap.toml</code> 中指定路径信息和保留备份数量,用 [[systemd]] timer 自动创建和清理备份。
  
 
=== [https://github.com/kilobyte/compsize compsize] ===
 
=== [https://github.com/kilobyte/compsize compsize] ===

2021年5月15日 (六) 19:19的最新版本

备份

dosnap 可用于定时备份。

备份到移动硬盘:

sudo btrfs send -p /mnt/_snapshots/%home/{2021-04-30T23-00-57-auto,2021-05-09T23-00-01-auto} | pv |
     sudo btrfs receive /path/to/backupdrive/home

相关程序

以下是一些好用的 Btrfs 相关的程序。

dosnap

我写的一个类似 snapper 的自动备份程序。在配置 /etc/dosnap.toml 中指定路径信息和保留备份数量,用 systemd timer 自动创建和清理备份。

compsize

查看 / 的压缩类型和压缩前后的大小

sudo compsize /

btrfs-heatmap

查看 /mountpoint 的 heatmap

sudo btrfs-heatmap /mountpoint

btrfs-list

查看树形的 snapshot 列表

sudo btrfs quota enable /
# 等待 quota rescan
sudo btrfs-list
sudo btrfs quota disable /

btrfs-diff

查看第二个 subvolume 相对于第一个改变的文件

sudo btrfs-diff /mnt/_snapshots/%home/snap /mnt/@home

脚本如下(拷贝自 https://serverfault.com/a/580264

set -eu

usage() {
    echo "Usage: $0 <older-snapshot> <newer-snapshot>" >&2
    exit 1
}

[ $# -eq 2 ] || usage "Incorrect invocation"
snapshot_old=$1
snapshot_new=$2

[ -d "$snapshot_old" ] || usage "$snapshot_old does not exist"
[ -d "$snapshot_new" ] || usage "$snapshot_new does not exist"

old_transid=$(btrfs subvolume find-new "$snapshot_old" 9999999)
old_transid=${old_transid#transid marker was }
[ "$old_transid" -gt 0 ] || usage "Failed to find generation for $snapshot_new"

btrfs subvolume find-new "$snapshot_new" "$old_transid" | sed '$d' | cut -f17- -d' ' | sort | uniq