Zsync-一种文件传输实用程序,仅下载文件的新部分
仅仅因为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文件的新部分,我们已经在系统上拥有该文件的旧版本的副本。