假设我有一个包含100个快照的数据集,并且想在所有快照中find名为“cache”的所有文件夹。
我想实际上释放空间,而不是将其隐藏在快照层,所以做一个克隆和删除,然后采取新的快照似乎没有做我想要的。
任何半自动的方式呢? 一些环绕zfs列表-t快照,zfs克隆,zfs升级,zfs快照?
(从https://superuser.com/questions/313197交叉发布,因为我看到这有更多的ZFS的东西)
快照是只读的。 如果你需要这些文件夹,那么你必须删除整个快照。
你可以做一个备份(像tar这样的东西),排除有问题的文件夹,然后删除快照。 很明显,备份现在是焦油,或其他格式; 但至less你还有一个备份副本。
你可以试试以下内容:
fsnew )。 fsnew )以允许您销毁文件系统所基于的快照。 fsnew的快照。 现在快照之后,使用快照中的--inplace标志rsync来跳过不想要的文件。 --inplace标志减less了写入次数并允许更小的快照。
fsnew的快照。 完成此操作后,您应该在fsnew上fsnew一个与删除了违规文件的原始文件系统的快照相对应的快照。
如果驱动器上有空间,则可能需要跳过“摧毁”命令,直到获得正确的脚本为止。
特定ZFS文件系统的ZFS快照可以在文件系统根目录下的.zfs/snapshots目录下find。 你应该可以编写一个遍历这个文件夹的脚本,而rm就是你需要的文件,它应该从快照本身中删除它。