我已经关注了几篇关于如何创建可以稍后在相同或不同系统上重新加入的跨区文件的帖子。但是,我从未见过有关如何以跨平台工作的方式执行此操作的帖子。
我的要求是支持最流行的基于 posix 的操作系统(例如,Linux、FreeBSD 和 Cygwin 或 Windows 上的 WSL)。它不需要支持 Windows 操作系统本身。
它必须能够处理超过 100GB 的巨大目录,以最少的中间磁盘使用量保持高效,并且输出跨越 256MB 文件以使rsync文件易于管理。并且使用的库必须通过标准主流软件包在各种操作系统上随时可用。
主要用例是有一个脚本来压缩大型虚拟机,以便最终在单独的作业中通过线路传输到远程备份。
这最好使用两个工具来完成:
tar
和7zip
.tar
将目录内容与所有所有权和元数据一起打包,7zip
并将处理压缩和跨越。这个过程已经过测试,
FreeBSD
但应该很容易通过Cygwin
*移植到 Linux 或 windows 。这种方法会将虚拟机或其他大目录压缩并划分为更小的块,从而更容易存储和通过网络发送以进行远程备份。* Cygwin 可能无法像 Windows 中的所有权一样正确处理所有文件数据,但应该可以处理所有文件数据和时间戳。