我有一个远程的Web服务器上有600MB左右的文件,我想复制到PC上,然后复制到一个新的服务器上。 我尝试了FileZilla,但是它通过从旧服务器传输中途中断,并且在不丢失已经完成的部分的情况下不能恢复。 有没有更好的办法?
感谢您的答复。 澄清,这里是更多的细节问题和我的最终结果。
这两个远程服务器都是具有SSH和shell访问权限的nix系统。 没有中间电脑,我没有考虑过直接移动文件; 我决定把它作为过程的一部分,主要是为文件提供备份。 中间的PC是Windows,但是我有大部分Linux实用程序作为Cygwin的一部分。
我决定复制到Windows有一个意想不到的好处 – 它告诉我关于我的文件结构的一些细微的细节,否则可能没有被注意到。 我使用以下方法在两台服务器和Windows PC上生成了所有文件的校验和:
find . -type f -exec cksum {} \; | sort >sums.txt
我在Windows副本中发现了一些不匹配的情况。 首先是两个文件具有相同的名称,除了大写/小写的差异,导致第二个文件覆盖第一个。 其次是一个软链接,它被转换成一个普通的文件。
我认为我最初的问题与Filezilla是由大写/小写重复造成的,导致该文件中止。 当我检查传输状态时,服务器连接丢失,这就解释了为什么我无法恢复。
继续使用Filezilla。
SSH的Rsync不会更好:Filezilla能够连接到SSH端口22,通过同一台机器上的端口20 + 21连接到FTP服务。 Filezilla已经有能力通过它的排队和SSLfunction来做到这一点。
Filezilla有一个非常成熟的“简历”function,应该处理任何连接丢失问题,如果configuration正确 。
如果你想避免FTPS或FTP(这可能是你的问题)的不可靠的双端口/通道性质,你可以运行在端口22上的“mini”版本的CoreFTP服务器,并与WinSCP或CoreFTP客户端连接并通过单个端口进行传输。
通过SSH的Rsync。
如果文件通过http或ftp暴露,请使用wget。 这就像一个pittbull。 如果你指定了无限制的重试次数,持有并不放弃。 以约6字节/秒的速度下载了几MB文件一次:)
如果你有shell的访问权限,你也可以使用rsync。
这将有助于了解服务器的操作系统。 FTP会是你最好的select,我想。 虽然,如果您有权访问,我将login到您要复制的服务器,并尝试从源服务器执行直接复制,然后摆脱中间的PC。
Linux或其他* nix
在其他答案中已经build议通过SSH的Rsync。 这是安全的,如果有任何中断,将恢复离开的地方,可以压缩文件传输。
视窗
Robocopy可能会是你最好的select。
FTP可能是最好的方法(即你在做什么)
现在最好的办法就是压缩文件(即以某种方式压缩文件),并使用诸如http://www.filesplitter.org/之类的东西将文件分割成更小的块(例如)
你可以使用WinRar之类的东西来完成这些任务,然后下载这些任务。
但是,这当然取决于你对主机有什么样的访问以及主机是什么。 它甚至是窗户吗?
我使用FileZilla,因为您可以将其设置为不下载/上传年龄相同或更旧的文件。 所以,除非他们更新,否则你不会查看文件。 如果我想直接从一个服务器复制文件到另一个我使用快速转移脚本(www.rapidtransferscript.com)。 它可以在90秒内复制大1GB的文件。