zsync (1) - Linux Manuals

zsync: Partial/differential file download client over HTTP


zsync - Partial/differential file download client over HTTP


zsync [ -u url ] [ -i inputfile ] [ -o outputfile ] [ { -s | -q } ] [ -k file.zsync ] [ -A hostname=username:password ] { filename | url }

zsync -V


Downloads a file over HTTP. zsync uses a control file to determine whether any blocks in the file are already known to the downloader, and only downloads the new blocks.

Either a filename or a URL can be given on the command line - this is the path of the control file for the download, which normally has the name of the actual file to downlaod with .zsync appended. (To create this .zsync file you have to have a copy of the target file, so this file should be generated by the person providing the download).

zsync downloads to your current directory. It looks for any file in the directory of the same name as the file to download. If it finds one, it assumes that this is an earlier or incomplete version of the new file to download, and scans this file for any blocks that it can use to build the target file. (It also looks for a file of the same name with .part appended, so it will automatically find previously interrupted zsync downloads and reuse the data already downloaded. If you know that the local file to use as input has a different name, you must use -i)

zsync retrieves the rest of the target file over HTTP. Once the download is finished, the old version (if the new file wants the same name) is moved aside (a .zs-old extension is appended). The modification time of the file is set to be the same as the remote source file (if specified in the .zsync).


-A hostname=username:password
Specifies a username and password to be used with the given hostname. -A can be used multiple times (with different hostnames), in cases where e.g. the
 .zsync file is on a different server from the download, or there are multiple download servers (there could be different auth details for different servers - and zsync never assumes that your password should be sent to a server other than the one named - otherwise redirects would be dangerous!).
-i inputfile
Specifies (extra) input files. inputfile is scanned to identify blocks in common with the target file and zsync uses any blocks found. Can be used multiple times.
-k file.zsync
Indicates that zsync should save the zsync file that it downloads, with the given filename. If that file already exists, then zsync will make a conditional request to the web server, such that it will only download it again if the server's copy is newer. zsync will append .part to the filename for storing it while it is downloading, and will only overwrite the main file once the download is done - and if the download is interrupted, it will resume using the data in the .part file.
-o outputfile
Override the default output file name.
Suppress the progress bar, download rate and ETA display.
Deprecated synonym for -q.
-u url
This specifies the referring URL. If you have a .zsync file locally (if you downloaded it separately, with wget, say) and the .zsync file contains a relative URL, you need to specify where you got the .zsync file from so that zsync knows which server and path to use for the rest of the download (this is analogous to adding a <base href="..."> to a downloaded web page to make the links work).
Prints the version of zsync.



Should be the [http://]hostname:port for your web proxy, if one is required to access the target web server(s).


zsync -i /var/lib/apt/lists/server.debian.org_debian_dists_etch_main_binary-i386_Packages http://zsync.moria.org.uk/s/etch/Packages.zsync


Colin Phipps <cph [at] moria.org.uk>