我正在研究python中的远程备份解决方案。服务器部分将在 Unix/Linux 上运行,因为它将使用硬链接进行有效的增量备份。
然而,客户端部分也必须在 Windows 上运行,并且文件锁定可能是一个问题。
根据我的研究,卷影复制服务 (VSS) 是我需要的。类似于 LVM 快照,不受文件锁定的影响。然而,VSS API 似乎没有在 pywin32 中实现。
我目前的想法是使用一些包装器来创建临时 VSS 快照,运行客户端,然后将其删除。
我想知道是否有人在这种情况下有经验。
我正在研究python中的远程备份解决方案。服务器部分将在 Unix/Linux 上运行,因为它将使用硬链接进行有效的增量备份。
然而,客户端部分也必须在 Windows 上运行,并且文件锁定可能是一个问题。
根据我的研究,卷影复制服务 (VSS) 是我需要的。类似于 LVM 快照,不受文件锁定的影响。然而,VSS API 似乎没有在 pywin32 中实现。
我目前的想法是使用一些包装器来创建临时 VSS 快照,运行客户端,然后将其删除。
我想知道是否有人在这种情况下有经验。
想知道我偶然发现的相同
https://github.com/sblosser/pyshadowcopy(简单,但似乎不再活跃)
和
https://github.com/libyal/libvshadow(复杂,雄心勃勃,阿尔法)
不幸的是,我还没有时间测试它们......
我会在您的 Windows 客户端上研究 IronPython。仅仅是因为这将使您能够访问 COM+ DLL 和其他 WinAPI 对象。它是 .NET,但它仍然是 python。我还没有使用它来保证 100% 确定它可以与 VSS 一起使用,但它应该.
在为我的个人备份工具寻找相同的东西时,我遇到了PyVSS
. 这似乎很容易使用,但是,只有该模块的编译版本可用。缺少基本的源代码部分。