当我阅读man zfs
for zfs receive
我看到
-F Force a rollback of the file system to the most recent snap- shot before performing the receive operation. If receiving an incremental replication stream (for example, one generated by "zfs send -R -Fi -iI"), destroy snapshots and file systems that do not exist on the sending side.
但我不太明白-F
实际上会做什么。
如果我的zfs receive tank/pool
然后收到的快照回滚到目标端文件系统,这是我想要的。
我想在哪种情况下使用-F
?
如果在收到目标数据集之后,-F开关就会派上用场。 一旦你做了任何改变(包括做一个无辜的目录列表,因为这会改变一次),它不再是在初始传输后的状态。 尝试从另一方的zfs send -i tank/dataset@old tank/dataset@new
创build的增量数据stream运行一个普通的zfs receive
将导致错误。 在这种情况下,您在接收端有两个选项:
zfs rollback
手动恢复到上一个快照 -F
开关提供给zfs receive
让它自动处理 当然,这可能是一个破坏性的操作,所以你必须在使用之前了解它在做什么。 但是,如果您所做的只是将快照复制到没有其他数据写入的非活动“备份”目标,则可能会错过,所以应该是安全的。
其他人是ZFS的专家,如果你还没有看到,我会简单的发表。
在发生回滚和接收启动之间修改文件系统时,可能需要使用此选项。
来自: Solaris – 新zfds收到-F选项