我在远程 Web 服务器上有大约 600MB 的数据,我想将其复制到 PC,然后再复制到新服务器。我尝试使用 FileZilla,但它在从旧服务器传输过程中失败了,并且无法恢复,否则会丢失已完成的内容。有没有更好的方法?
谢谢大家的回复。为了澄清起见,下面是问题的更多细节和我的最终结果。
两个远程服务器都是 *nix 系统,具有 SSH 和 shell 访问权限。我没有考虑过在没有中间 PC 的情况下直接移动文件;我决定将其作为流程的一部分,主要是为了提供文件备份。中间的 PC 是 Windows,但我有大多数 Linux 实用程序作为 Cygwin 的一部分。
我决定复制到 Windows 带来了意想不到的好处 - 它让我了解到文件结构的一些细微细节,否则这些细节可能会被忽视。我使用以下命令生成了两台服务器和 Windows PC 上所有文件的校验和:
find . -type f -exec cksum {} \; | sort >sums.txt
我在 Windows 副本中发现了几个不匹配的地方。第一个是两个文件,除了大小写不同外,它们的名称完全相同,这导致第二个文件覆盖了第一个文件。第二个是软链接,它被转换为常规文件。
我认为我最初使用 Filezilla 时遇到的问题是由大小写重复引起的,这导致该文件中止。当我再次检查传输状态时,服务器连接已丢失,这解释了为什么我无法恢复。
答案1
继续使用 Filezilla。
SSH 的 Rsync 并不更好:Filezilla 能够连接到 SSH 端口 22,使用同一台机器上的端口 20+21 隧道连接到 FTP 服务。Filezilla 已经具备了通过其队列和 SSL 功能实现此目的的能力。
Filezilla 拥有非常成熟的“恢复”功能,可以处理任何连接中断问题适当地配置。
如果您想避免 FTPS 或 FTP 不可靠的双端口/通道特性(这可能是您的问题),您可以在目标机器的端口 22 上运行“迷你”版 CoreFTP 服务器,并使用 WinSCP 或 CoreFTP 客户端连接到它并通过单个端口进行传输。
答案2
通过 SSH 进行 Rsync。
答案3
如果文件通过 http 或 ftp 公开,请使用 wget。它就像斗牛犬。如果您指定无限次重试,它会坚持下去并且不会放弃。曾经以大约 6 字节/秒的速度下载了几 MB 的文件 :)
如果您有 shell 访问权限,您也可以使用 rsync。
答案4
Linux 或其他 *nix
就像其他答案中建议的那样,通过 SSH 进行 Rsync。它很安全,如果有任何中断,它会从中断的地方恢复,并且可以在传输过程中压缩文件。
视窗
Robocopy 可能是您最好的选择。