“Btrfs”的版本间的差异
跳到导航
跳到搜索
(创建页面,内容为“== 相关程序 == 以下是一些好用的 Btrfs 相关的程序。 === [https://github.com/kilobyte/compsize compsize] === 查看 <code>/</code> 的压缩类型…”) |
|||
(未显示同一用户的4个中间版本) | |||
第1行: | 第1行: | ||
+ | == 备份 == | ||
+ | |||
+ | [[#dosnap|dosnap]] 可用于定时备份。 | ||
+ | |||
+ | 备份到移动硬盘: | ||
+ | <syntaxhighlight lang=bash> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
== 相关程序 == | == 相关程序 == | ||
以下是一些好用的 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] === | ||
第55行: | 第69行: | ||
btrfs subvolume find-new "$snapshot_new" "$old_transid" | sed '$d' | cut -f17- -d' ' | sort | uniq | btrfs subvolume find-new "$snapshot_new" "$old_transid" | sed '$d' | cut -f17- -d' ' | sort | uniq | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | [[Category:命令行]] |
2021年5月15日 (六) 18: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