[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(3)]] [[Bild(Wiki/Icons/backup.png,64,align=left)]] zsync ist ein Programm, um [wikipedia:ISO-Abbild: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 [wikipedia:Artistic_License:Artistic License V2] und ist von [lpuser:cph-moria:Colin Phipps] entwickelt worden. zsync wird von [wikipedia: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 [:Entwicklungsversion#Daily-Builds:Daily Builds]. So muss man sich nicht mehrmals pro Woche ein komplettes Daily-ISO-Image herunterladen, sondern lässt zsync nur die Änderungen synchronisieren. * 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 [http://releases.ubuntu.com/ Release-Seite] {dl} 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] {dl}. Weitere Download-Möglichkeiten kann man unter [#Links Links] finden. = Installation = Um zsync nutzen zu können, muss es installiert werden: {{{#!vorlage Paketinstallation zsync, universe }}} zsync ist eine Terminalanwendung[1], es entfällt daher ein Menüeintrag. = Nutzung = {{{#!vorlage 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. Wird ein Link kopiert, dann ist darauf zu achten, dass statt https nur `http` benutzt wird. }}} Der Grundbefehl in einem Terminal [1] ist stets der folgende: {{{#!vorlage Befehl zsync http://link_zur_version.iso.zsync }}} Beispiel: {{{#!vorlage Befehl 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 [wikipedia:Message-Digest_Algorithm_5:md5-Prüfsummen] (siehe [:Shell/md5sum#Md5sum-von-Ubuntu-ISO-pruefen:]). Wird dabei der Name nicht geändert (siehe Abschnitt [#Befehl-mit-Option-i #Befehl mit Option -i]), so hängt zsync der alten Datei die [wikipedia: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: [http://zsync.moria.org.uk Advantages of zsync] {en} ): * 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 [:Serverdienste#Webserver: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: {{{#!vorlage Tabelle <-2 rowclass="titel"> 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 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: {{{#!vorlage befehl 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:]: {{{#!vorlage befehl 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 [:Maverick Meerkat:Ubuntu 10.10] lokal gespeichert und wird mit der finalen Version synchronisiert: {{{#!vorlage befehl 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: {{{#!vorlage Befehl 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 [:Bash/Prompt: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] {en} darüber informieren. = Links = * Zu zsync: * [http://zsync.moria.org.uk/ Homepage] {en} * [ubuntu_doc:community/ZsyncCdImage:Zsync CD-Image] * [packages:zsync:] * Tutorials, Tipps, Tricks: * [http://ubuntu-tutorials.com/2009/10/29/use-zsync-to-update-existing-iso-images/ ubuntu-tutorials.com: Use zsync to update existing .iso images (alpha, beta or RC -> final)] {en} * [http://www.webupd8.org/2009/10/how-to-upgrade-your-karmic-iso-with.html webupd8.org: How To 'Upgrade' Your Ubuntu Karmic ISO With Zsync] {en} * [http://digitizor.com/2010/04/30/how-to-download-ubuntu-10-04-using-zsync/ digitizor.com: How To Download Ubuntu 10.04 Using zsync] {en} * [http://digitizor.com/2011/04/29/update-ubuntu-11-04-zsync/ digitizor.com: How To Update An Old Ubuntu ISO To Ubuntu 11.04 Using zsync] {en} * [man:zsync: Ubuntu manual page] * Download-Seiten: * [http://www.ubuntu.com/download/desktop Ubuntu Downloads] {en} * [http://www.ubuntu.com/download/desktop/alternative-downloads ubuntu.com: Alternative Downloads] {dl} * [http://cdimage.ubuntu.com] {dl} * [http://old-releases.ubuntu.com/releases] {dl} * Implementierung von zsync bei Canonical/Ubuntu: * [brainstorm:7590: Idea #7590 – Provide zsync files for Ubuntu isos] * [bug:408501:Please create .zsync files for ISO images] # tag: Shell, System, Installation