Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
zsync ist ein Programm, um ISO-Images zu vergleichen. Dazu nutzt es den Algorithmus von rsync. Findet es Unterschiede, lädt es diese herunter, um daraus und einer lokal vorhandenen Datei ein aktualisiertes Image bereitzustellen.
Es steht unter der Artistic License V2 und wurde von Colin Phipps programmiert. zsync wird von Canonical (und anderen Distributoren) auf deren Downloadservern genutzt, um Anwendern ein reduziertes Download-Datenvolumen anbieten zu können.
Tester und Entwickler: zsync vereinfacht und beschleunigt erheblich das Herunterladen und Testen von Daily Builds. So muss man sich nicht mehrmals pro Woche ein komplettes Daily-ISO-Image herunterladen, sondern lässt zsync nur die Änderungen synchronisieren. Vor allem im Zusammenspiel mit TestDrive kann zsync seine Stärken ausspielen.
Endanwender: Nutzer, die mit einer Beta-Version oder einem Release-Candidate (RC) auf eine neue Ubuntuversion umgestiegen sind und mit Veröffentlichung der Finalversion neu installieren möchten, brauchen mit zsync nur einen Bruchteil dessen herunterzuladen, was bei einem Komplett-Download der finalen ISO an Traffic anfallen würde. Zielgruppe sind ebenfalls Anwender von LTS-Versionen, die sich die jeweiligen Snapshots „syncen“ möchten.
Um zsync überhaupt nutzen zu können, muss man sich einmalig ein ISO-Abbild herunterladen. Um beim Beispiel Ubuntu zu bleiben, kann man sich der Release-Seite Canonicals bedienen. Von dieser Übersicht ausgehend, sucht man sich die gewünschte Version. Die oben angesprochenen Daily-Builds der kommenden Ubuntuversion für Tester und Entwickler findet man unter http://cdimage.ubuntu.com/daily-live/current . Weitere Download-Möglichkeiten kann man unter Links finden.
Um zsync nutzen zu können, muss es installiert werden:
zsync (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install zsync
sudo aptitude install zsync
zsync ist eine Terminalanwendung[1], es entfällt daher ein Menüeintrag.
Es wird im Folgenden davon ausgegangen, dass sich die lokale Datei im Homeverzeichnis befindet. Für die im weiteren Verlauf gezeigten Beispiele sind Server von Canonical (Ubuntu) genutzt worden. zsync funktioniert aber auch mit allen anderen Servern, die zsync anbieten.
Um zsync zu nutzen, startet man ein Terminal [1]. Der Grundbefehl ist stets der folgende:
zsync http://link_zur_version.iso.zsync
Dieser Befehl setzt voraus, dass bereits ein lokales ISO-Abbild existiert. zsync muss im selben Ordner ausgeführt werden, in dem auch das lokale ISO-Abbild liegt, um dieses mit dem auf dem Server liegenden vergleichen zu können. Wichtig ist, dass der URL mit .zsync angegeben wird, nicht der .iso-Link.
zsync lädt sich die hinter dem Link befindliche .zsync-Datei herunter, vergleicht die dort hinterlegten Informationen des neuen ISO-Abbildes mit denen des lokalen (alten) Abbildes, lädt nur die veränderten (neuen) Dateien herunter, stellt aus beiden Quellen ein aktualisiertes ISO-Abbild bereit und vergleicht abschließend die md5-Prüfsummen (siehe Shell/md5sum).
Wird dabei der Name nicht geändert (siehe Abschnitt #Befehl mit Option -i), so hängt zsync der alten Datei die Dateinamenserweiterung .zs-old
an. Möchte man diese alte Datei wieder verwenden, so löscht man einfach den angehängten Zusatz .zs-old. Eine weitere Eigenschaft von zsync ist eine Prüfung, ob es im angegebenen Verzeichnis eine Datei mit der Dateinamenserweiterung .part gibt. Ist dies der Fall, so kann zsync den vorher unterbrochenen Download wieder aufnehmen und ab diesem Punkt weitermachen.
zsync bietet gegenüber anderen Synchronisierungsprogrammen eine Reihe von Vorteilen (Quelle: Advantages of zsync ):
zsync nutzt den rsync-Algorithmus, läuft jedoch auf der Client-Seite und vermeidet dadurch hohe Serverlasten, die mit rsync auftreten können.
zsync bietet einen komprimierten Datenverkehr an (vergleichbar mit der rsync-Option -z
), jedoch ohne dazu eine spezielle Server-Applikation nutzen zu müssen. Auch kann es durch Firewalls und mit „Shared Hosting Accounts“ (z. B. RapidShare) synchronisieren, indem es nur einen HTTP/1.1-konformen Webserver als Gegenstelle voraussetzt.
zsync kann komprimierte Dateien synchronisieren; auch jene, die mit gzip komprimiert worden sind – im Gegensatz zu rsync, das nur mit einer gepatchten Version von gzip effektiv arbeitet.
Der Funktionsumfang von zsync kann mit den folgenden Optionen und Variablen erweitert werden:
Optionen von zsync | |
Option | Bedeutung |
-A | Spezifiziert einen Benutzernamen und ein Passwort, die mit dem angegebenen Hostnamen benutzt werden (Format: hostname=username:password ). |
-i | Gibt den Ort der lokalen Datei an. Diese Option kann man nutzen, wenn die lokale Datei in einem anderen Ordner liegt oder es sich um unterschiedliche Dateinamen handelt. Man kann auch auf einen Schlag mehrere Dateien zum Abgleich angeben. |
-k | Speichert die heruntergeladene zsync-Datei unter dem genannten Namen (z. B. foo.zsync) |
-o | Überschreiben des Standard-Ausgabenamens |
-s | Verzichtet in der Anzeige auf den Fortschrittsbalken, die Downloadrate und die verbleibende Zeit. |
-u | Ist die zsync-Datei lokal gespeichert worden und enthält einen relativen URL, spezifiziert man diesen URL, damit zsync weiß, welchen Server und Pfad es nutzen soll. |
-V | Zeigt die Version von zsync an. |
Variable | Bedeutung |
http_proxy | Wird im Format hostname:port genutzt, wenn der Server einen Web-Proxy nutzt (Format: [http://]hostname:port ). |
Die folgenden Beispiele nutzen einige der oben genannten Optionen und Variablen und zeigen zur Verdeutlichung deren Ausgabe.
Im folgenden Abschnitt kann man eine zsync-Ausgabe im Terminal beim Abgleich einer Ubuntu-Desktop-ISO ohne weitere Optionen anschauen:
zsync http://cdimage.ubuntu.com/daily-live/current/oneiric-desktop-amd64.iso.zsync
Die Ausgabe sieht dann wie folgt aus: Es wird die zsync-Datei heruntergeladen, welche die lokale mit der Server-ISO vergleicht. In diesem Falle ist die lokale ISO zu 99,4% identisch mit der Server-ISO, so dass zsync die aktualisierten Dateien vom Server lädt. Der Download wird geprüft und eine Statistik ausgegeben: knappe 743.000.000 lokale Bytes haben genutzt werden können und circa 4.550.000 Server-Bytes sind übertragen worden.
#################### 100.0% 939.1 kBps DONE reading seed file oneiric-desktop-amd64.iso: ************************************************************** Read oneiric-desktop-amd64.iso. Target 99.4% complete. ******** downloading from http://cdimage.ubuntu.com/daily-live/current/oneiric-desktop-amd64.iso: #################### 100.0% 4986.4 kBps DONE verifying download...checksum matches OK used 739196928 local, fetched 4554368
Es gibt zwei Möglichkeiten, die Option -i
zu nutzen:
ein lokales ISO-Abbild liegt in einem anderen Verzeichnis als dem Homeverzeichnis
man möchte eine Datei anderen Namens synchronisieren (Beta/RC mit der Final oder LTS-Snapshot 10.04.1 mit 10.04.2)
Der Befehl wird benutzt, wenn die lokale Datei in einem anderen Verzeichnis liegt als das Verzeichnis der jeweiligen Terminal-Session. Im Beispiel liegt die ISO im Verzeichnis Downloads im Homeverzeichnis:
zsync -i Downloads/oneiric-desktop-amd64.iso http://cdimage.ubuntu.com/daily-live/current/oneiric-desktop-amd64.iso.zsync
Die Ausgabe lädt nichts herunter (fetched 0
), da die ISO schon vorher abgeglichen worden ist. Daraus ergibt sich, dass sich die ISO seit der letzten Synchronisation nicht geändert hat. Die Ausgabe im Terminal sieht wie folgt aus:
#################### 100.0% 377.5 kBps DONE reading seed file Desktop/oneiric-desktop-amd64.iso: *********************************************************** Read Desktop/oneiric-desktop-amd64.iso. Target 100.0% complete. ******* verifying download...checksum matches OK used 743747584 local, fetched 0
Die Option -i
kann man ebenfalls nutzen, wenn man sich beispielsweise eine Beta-Version oder einen Release Candidate (RC) einer Ubuntuversion heruntergeladen hat und diesen nun mit der finalen Version abgleichen möchte. Auch für LTS-Snapshots ist diese Option anwendbar, oder wenn man mehrere ISO parallel abgleichen möchte. Im folgenden Beispiel ist der RC von Ubuntu 10.10 lokal gespeichert und wird mit der finalen Version synchronisiert:
zsync -i ubuntu-10.10-rc-desktop-amd64.iso http://releases.ubuntu.com/maverick/ubuntu-10.10-desktop-amd64.iso.zsync
Der Befehl wird genutzt, wenn man sich die Ausgabe von Fortschrittsbalken, Downloadrate und der verbleibenden Zeit ersparen möchte. zsync führt die genannten Aufgaben durch, gibt jedoch keinerlei Rückmeldungen aus:
zsync -s http://cdimage.ubuntu.com/daily-live/current/oneiric-desktop-amd64.iso.zsync
Auf diesen Befehl erhält man keine Ausgabe. Man sieht bei erfolgreicher Synchronisation wieder das Prompt.
zsync lässt sich auf eigenen Servern einsetzen. Wie dieser Sonderfall funktioniert, soll an dieser Stelle nicht behandelt werden. Stattdessen kann man sich auf der Seite http://zsync.moria.org.uk/server darüber informieren.
Zu zsync:
Ankündigungsartikel (Version 0.0.2)
Tutorials, Tipps, Tricks:
Download-Seiten:
Implementierung von zsync bei Canonical/Ubuntu:
Diese Revision wurde am 6. Mai 2016 21:53 von axt erstellt.