Zsync-一种文件传输实用程序,仅下载文件的新部分

时间:2020-03-21 11:48:50  来源:igfitidea点击:

仅仅因为Internet计划每天都在变得便宜,我们不应该通过一遍又一遍地重复下载相同的内容来浪费带宽数据。
一个很好的例子是下载Ubuntu ISO镜像的开发版本。
如我们所知,Ubuntu开发人员每隔几个月发布一次每日构建,alpha,beta ISO镜像以进行测试。
过去,我曾经下载那些可用于测试和查看每个版本的图像。
不再!感谢Zsync文件传输程序。
现在可以仅下载ISO镜像的新部分。
这将为我们节省大量时间和Internet带宽。
不只是时间和带宽,它还将为我们节省服务器端和客户端的资源。

Zsync使用与Rsync相同的算法,但是它只会下载文件的新部分,而计算机上已经拥有该文件的旧版本的副本。
Rsync主要用于在计算机之间同步数据,而Zsync用于分发数据。
简单地说,可以使用Zsync将一个文件放在一个中央位置,以分发给成千上万的下载者。
它是完全免费的,并且根据Artistic License V2发行。

安装Zsync

大多数Linux发行版的默认存储库中都提供Zsync。

在Arch Linux及其衍生版本上,使用以下命令进行安装:

$sudo pacman -S zsync

在Fedora上:

启用Zsync存储库:

$sudo dnf copr enable ngompa/zsync

并使用命令安装它:

$sudo dnf install zsync

在Debian,Ubuntu和Linux Mint上:

$sudo apt-get install zsync

在openSUSE上:

$sudo zypper install zsync

对于其他发行版,可以从Zsync下载页面下载二进制文件,然后手动编译并安装它,如下所示。

$wget http://zsync.moria.org.uk/download/zsync-0.6.2.tar.bz2
$tar xjf zsync-0.6.2.tar.bz2
$cd zsync-0.6.2/
$configure
$make
$sudo make install

如何使用zsync仅下载文件的新部分

请注意,仅当人们提供zsync下载时,zsync才有用。
目前,Debian,Ubuntu(所有版本)ISO镜像都可以通过.zsync下载获得。
例如,访问以下链接。

  • Ubuntu Daily版本

我们可能会注意到,Ubuntu 20.04 LTS的每日构建可作为直接ISO和.zsync文件提供。
如果选择.ISO版本,则每当ISO获得新更新时,都必须下载完整的ISO。
但是,如果我们下载.zsync文件,则Zsync将仅下载文件中的新更改。
我们无需每次都下载整个ISO镜像。

.zsync文件包含zsync程序所需的元数据。
该文件包含rsync算法的预先计算出的校验和。
它在服务器上生成一次,然后由任意数量的下载器使用。

要使用Zsync客户端程序下载.zsync文件,我们所需要做的就是运行以下命令:

$zsync <.zsync-file-URL>

例子:

$zsync http://cdimage.ubuntu.com/ubuntu/daily-live/current/bionic-desktop-amd64.iso.zsync

如果系统上已经有旧镜像文件,则Zsync将计算远程服务器中旧文件与新文件之间的差异,并仅下载新零件。
我们将在终端上看到一系列点或者星的计算过程。

如果当前工作目录中有我们要下载的文件的旧版本,则Zsync将仅下载新部分。
下载完成后,我们将获得两张图像,一个是我们刚下载的图像,另一个是旧文件,其文件名带有.iso.zs-old扩展名。

如果找不到相关的本地数据,Zsync将下载整个文件。

我们可以随时按CTRL-C取消下载过程。

试想一下,如果我们使用直接的.ISO文件或者torrent,那么每次下载新镜像时,我们都会损失大约2.4GB带宽。
因此,Zsync不会下载整个镜像(alpha,beta和日常构建),而只是下载ISO文件的新部分,我们已经在系统上拥有该文件的旧版本的副本。