为了速度,我有 netcat
大笔一挥 .tgz
归档文件从一台电脑到远程电脑。据我观察 netcat
快于 rsync
对于这种转移。传输的设置方式如下。
在接收机器上,首先运行以下命令。
time nc -vl 33333 > archive.tgz
在发送机器上,第二条命令被执行。
time nc -N $SERVERIP 33333 < archive.tgz
在接收机器上,进度可以通过测量正在接收的文件的(已知)大小来解释。
ls -al --block-size=M
现在让我们假设传输过程中出现了某种中断. 假设发送计算机断电或网络连接中断。假设重启传输被排除在选项之外(由于传输大文件所需的时间),什么是一个合理的方式来接收传输?能否 netcat
又以某种方式接过转会?会不会 rsync
能否捡起碎片并完成传输?
是的,rsync会分块扫描两边的文件,只传输缺失的部分。
请注意,rsync(通常)是通过一个加密的SSH隧道传输数据,而netcat是以明文传输数据(你可能知道这一点,但随机读者要注意了!)