我正在尝试在服务器之间发送大文件(大约 5 GB)。sftp 和 rsync 哪个更好?
有人能给我指出 sftp 和 rsync 的比较吗?其中一个比另一个好吗?如果是,为什么?
请指教..
答案1
对于像这样的大文件,请使用或rsync
选项,这样如果传输过程中失败(例如由于意外的连接断开),您可以通过重新运行相同的命令轻松恢复。--inplace
--partial-dir=
我倾向于rsync
在大多数常规传输中使用它,而不仅仅是在真正需要更全面的同步能力的情况下使用它。它的安全性不亚于sftp
运行ssh
(通常如此),效率也不低。
sftp
我认为(和相关的)的主要优点scp
是通常可以在任何ssh
可用的地方使用,因此几乎任何 Linux/BSD/类似的客户端或服务器设置都可以,而rsync
默认情况下不会安装。
答案2
scp/sftp/rsync
在实际传输文件时,即使是在 Nehalems 上,速度也很慢,因为加密是一个相当沉重的负担。此外,我印象中,scp/ssh
设置自己的魔术套接字选项,如 TCP 窗口大小,并且总是很慢(在当地的10Gbps 路径)。
特别是对于较大的文件和 WAN,这让我感到害怕,我不明白为什么有人认为他比操作系统的底层 TCP 堆栈更聪明。
我会研究 Globus Toolkit 的 GridFTP(即强化版的 FTP),它使用并行/多流 TCP 会话进行批量传输,并且完美地针对 WAN 进行了调整。您可以使用成熟的 PKI 支持 GridFTP,或者使用 ssh 进行凭证和会话启动。以 10Gbps 的线速运行,并且可以根据需要进行扩展和负载平衡,但这确实是 TB 级数据所需要的。
编辑:是的,有 SSH 补丁可以修复窗口选项并为传输引入空密码,并且仅使用加密进行密钥交换和凭据,但您需要拥有连接的两个终止器才能构建 SSH 以充分利用它。