我希望您是否将同一个快照复制到与发送相同的目的地两次收到 zfs 就会知道它已经完成了。
我还感到失望的是,我可以将单个快照发送到数据集,但不能发送递归快照,而无需发送每个快照。
Zfs 似乎存在身份危机。
答案1
我假设 ZFS 不会跟踪快照的发送位置或接收位置。因此,接收看起来已经存在的快照必定是一个错误,因为同名快照不一定与现在正在接收的快照有任何关系(它可能是从其他地方接收的,或者可能已在本地修改) )。
您可以使用-R
( --replicate
) 和发送快照-I snapshot
,如下所示
zfs send -R -I @earlier tank@latest
这将发送快照与快照tank
之间数据集的所有快照,包括后代文件系统。@earlier
@latest
从zfs-send(8)
:
-R
,--replicate
生成一个复制流包,它将复制指定的文件系统以及所有后代文件系统,直到指定的快照。收到后,所有属性、快照、后代文件系统和克隆都会被保留。如果
-i
或-I
标志与 标志结合使用-R
,则会生成增量复制流。属性的当前值以及当前快照和文件系统名称在接收流时设置。 [...]
-I snapshot
生成一个流包,用于发送从第一个快照到第二个快照的所有中间快照。例如,-I @a fs@d
类似于-i @a fs@b; -i @b fs@c; -i @c fs@d
.增量源可以通过选项来指定-i
。