ubuntuusers.de

zsync

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/backup.png 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 ist von Colin Phipps entwickelt worden. zsync wird von Canonical (und anderen Distributoren) auf deren Download-Servern genutzt, um Anwendern ein reduziertes Download-Datenvolumen anbieten zu können.

Anwendungszweck

  • 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 Ubuntu-Version 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-Datei an Traffic anfallen würde. Zielgruppe sind ebenfalls Anwender von LTS-Versionen, die sich die jeweiligen Snapshots „syncen“ möchten.

ISO-Abbild herunterladen

Es ist einmalig ein ISO-Abbild herunterzuladen (wobei es auch ohne diesen Schritt möglich ist). 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 Ubuntu-Version für Tester und Entwickler findet man unter http://cdimage.ubuntu.com/daily-live/current ⮷. Weitere Download-Möglichkeiten kann man unter Links finden.

Installation

Um zsync nutzen zu können, muss es installiert werden:

  • zsync (universe)

Paketliste zum Kopieren:

sudo apt-get install zsync 

Oder mit apturl installieren, Link: apt://zsync

zsync ist eine Terminalanwendung[1], es entfällt daher ein Menüeintrag.

Nutzung

Hinweis:

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.

Der Grundbefehl in einem Terminal [1] ist stets der folgende:

zsync http://link_zur_version.iso.zsync 

Beispiel:

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

zsync muss im selben Ordner ausgeführt werden, in dem auch die lokale .iso-Datei liegt, um diese mit der auf dem Server liegenden vergleichen zu können, anderenfalls wird im folgenden das komplette ISO-Image geladen. Wichtig ist, dass der URL mit .zsync angegeben wird, nicht der .iso-Link.

Funktionsweise

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 (Abschnitt „Md5sum-von-Ubuntu-ISO-pruefen“)).

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.

Vorteile von zsync

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“ 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.

Optionen

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).

Beispiele

Die folgenden Beispiele nutzen einige der oben genannten Optionen und Variablen und zeigen zur Verdeutlichung deren Ausgabe.

Grund-Befehl

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

Befehl mit Option -i

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)

Unterschiedliche Verzeichnisse

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

Unterschiedliche Dateinamen

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 

Befehl mit Option -s

Der Befehl wird genutzt, wenn man sich die Ausgabe von Fortschrittsbalken, Download-Rate 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 den Prompt.

zsync auf Servern einsetzen

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.

Diese Revision wurde am 2. August 2020 23:11 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Shell, Installation