设置如下:
大量大文件(许多超过 4GB,总共多个 TB)以简单的树状结构存在,需要从少数 Linux 机器备份到 Windows 备份服务器,无需压缩。每天都会生成几百 GB 的数据,目前备份都是用 WinSCP 手动完成的。我的目标是使该过程自动化,并有良好的日志记录以供监控。一次写入,很少读取。(异地将使用 LTO-4 或 5)
但问题是,几乎我尝试过的每一个解决方案都遇到了严重的问题。
WinSCP 脚本 - 无法正确处理符号链接,导致文件传输循环无休止。手动 GUI 运行正常(存在一些可忽略的错误)
rdiff-backup for win - 不能正确支持备份服务器上已有的文件,并且从头开始备份超过 20TB 的数据不是一个耗时/耗资源的可行选项。(尝试了 stackexchange 列出的每一个技巧来识别现有数据,而无需花费 8 年的时间来生成校验和)
通过 cygwin 进行 rsync — 由于缺乏差异,空间需求很快就会超过我们当前的容量。
我的下一个想法是在备份服务器(或 FTP)上放置一个 ssh 服务器,并通过 scp 等在 Linux 端进行自动化……尽管我真的很想要校验和和差异支持。
另一个选项可能是从 nix 盒到备份服务器的 Samba。
我将非常感谢任何关于此事的意见或指导。我愿意接受建议,但会努力避免专有和闭源解决方案。我不习惯这种混合环境...
后续编辑:所以,在尝试了所有可能的选项之后,如果您要从 nix 转到 Windows,通过 cifs 安装 Windows,然后使用您选择的备份程序似乎是最可靠的方法。(有一些注意事项)话虽如此,我这样做只是权宜之计,直到我可以实现基于 ZFS 的 NAS。有了 NFS/CIFS/rsync 的支持,从 Windows、Mac 或 Linux 转移到 NAS 就不会有问题了。
答案1
我用备份电脑在 Linux 和 Windows 系统上进行差异增量备份。对于 Windows,我们只采用 CIFS 路径,但也可以通过 Cygwin/Gow 进行 rsync。
答案2
我尝试了几种方法在我的 Win7 机器上增量备份我的 Linux 机器,我得出的结论是,使用非 Linux 文件系统可靠地完成这项任务实际上是不可能完成的;因此我最终使用以下组合:
虚拟盒:在 Windows 主机上安装一个标准的 Linux 发行版,其中包含最低限度的软件包(Debian,纯文本),作为客户机(我建议在主机模式下添加第二个虚拟网络接口;这样,我实际上不使用 Linux 终端,我只需打开客户机,然后使用 Putty 在本地通过 ssh 连接到它)
迪尔维什,rsync 上的 perl 包装器,使用硬链接提供透明增量备份。
对我来说效果很好。
答案3
也许是 rclone (https://rclone.org/commands/rclone_sync/) 值得一试。用 Go 编写,有多个二进制文件(包括 Windows),并且允许使用多种协议(包括 SSH)将目录从 Linux 同步到 Windows。
您必须首先对其进行配置(即定义远程主机别名、协议和凭据),然后从命令行执行:
rclone sync remoteserveralias:/the/dir/path localpath
警告:由于sync
删除目标中的文件(它会尝试拥有两个相同的副本 - 远程与本地),更安全的方法是使用将copy
文件从源差异复制到目标而不进行任何删除的命令。