{"id":8283,"date":"2013-08-14T17:39:11","date_gmt":"2013-08-14T15:39:11","guid":{"rendered":"http:\/\/tuxproject.de\/blog\/?p=8283"},"modified":"2013-08-14T17:43:26","modified_gmt":"2013-08-14T15:43:26","slug":"schoener-sichern-unter-windows-teil-2-alternativen-zu-rsync","status":"publish","type":"post","link":"https:\/\/tuxproject.de\/blog\/2013\/08\/schoener-sichern-unter-windows-teil-2-alternativen-zu-rsync\/","title":{"rendered":"Sch\u00f6ner sichern unter Windows (Teil 2): Alternativen zu rsync"},"content":{"rendered":"<p>Vor <a href=\"https:\/\/tuxproject.de\/blog\/2010\/09\/datensicherung-mit-rsync-unter-windows\/\">etwa drei Jahren<\/a> hat\u00adte ich beschrieben, wie man mit cwR\u00adsync unter Win\u00addows seine wichti\u00adgen Dateien (*) effizient sich\u00adern kann. Mit Bedauern stellte ich nun gestern fest, dass cwR\u00adsync <a href=\"https:\/\/www.itefix.no\/i2\/cwrsync\">offen\u00adbar<\/a> peu a peu in eine kom\u00admerzielle L\u00f6sung umge\u00adwan\u00addelt wird. \u00c4rg\u00ader\u00adlich, aber ver\u00adst\u00e4ndlich. Sicher\u00adheit\u00adshal\u00adber begab ich mich auf die Suche nach Alter\u00adna\u00adtiv\u00aden.<\/p>\n<p><!-- more -->F\u00fcr meine Zwecke ben\u00f6tige ich eigentlich nur zwei von rsyncs Funk\u00adtio\u00adnen, n\u00e4m\u00adlich die Spiegelung (Verze\u00adich\u00adnis 2 wird zu ein\u00ader exak\u00adten Kopie von Verze\u00adich\u00adnis 1) und inkre\u00admentelle Sicherun\u00adgen (nur \u00c4nderun\u00adgen wer\u00adden \u00fcber\u00adtra\u00adgen, was ins\u00adbeson\u00addere bei gro\u00dfen Daten\u00admen\u00adgen ganz nett ist). Eine der m\u00f6glichen Alter\u00adna\u00adtiv\u00aden zu cwR\u00adsync, die bei\u00addes bieten, ist <b>plat\u00adtfor\u00admunab\u00adh\u00e4ngig<\/b>, quellof\u00adfen und bl\u00f6der\u00adweise in Java entwick\u00adelt wor\u00adden. Mit dieser L\u00f6sung fange ich direkt an.<\/p>\n<p>Sie hei\u00dft <a href=\"http:\/\/www.areca-backup.org\/\">Are\u00adca Back\u00adup<\/a> und sieht kom\u00adplex\u00ader aus als sie eigentlich ist (h\u00fcb\u00adsche Bilder gibt es auf <a href=\"http:\/\/www.areca-backup.org\/screenshots.php\">der Web\u00adsite<\/a>). Are\u00adca (ich k\u00fcrz\u2019 das jet\u00adzt mal ab) arbeit\u00adet wie die meis\u00adten Entwick\u00adlungs-IDEs auf Arbeits\u00adbere\u00adichs\u00adba\u00adsis, ein Sicherungsvor\u00adgang kann also selb\u00adst gespe\u00adichert und immer wieder abgerufen wer\u00adden, so dass die Sicherung nur ein einziges Mal vor\u00adbere\u00adit\u00adet wer\u00adden muss und ein\u00adfach mit\u00adgesichert wer\u00adden kann.<\/p>\n<p><em>(In fol\u00adgen\u00adden Beispie\u00adlen m\u00f6chte ich den Ord\u00adner \u201cNeuer Ord\u00adner\u201d mit Aus\u00adnahme aller Dateien, die auf <tt>*.tmp<\/tt> enden, auf dem Desk\u00adtop auf die externe Fest\u00adplat\u00adte <tt>G:\\Test\\<\/tt> sich\u00adern. Zeit\u00adstem\u00adpel m\u00fcssen nicht \u00fcber\u00adnom\u00admen wer\u00adden. Der Ord\u00adner <tt>G:\\Test\\<\/tt> sollte dabei bere\u00adits existieren, son\u00adst ver\u00adwirrt Are\u00adca mit wenig aus\u00adsagekr\u00e4fti\u00adgen Fehler\u00adpop\u00adups.)<\/em><\/p>\n<p>Beim Start ist ein Stan\u00addar\u00add\u00adar\u00adbeits\u00adbere\u00adich (zum Beispiel <em>.areca\/workspace<\/em> im Benutzerverze\u00adich\u00adnis) vor\u00adeingestellt, \u00e4ndern l\u00e4sst sich dieser im Men\u00fc \u201cArbeits\u00adbere\u00adich \/ Arbeits\u00adbere\u00adich \u00f6ff\u00adnen \u2026\u201d. Da noch nicht klar ist, ob wir vielle\u00adicht sp\u00e4ter mal weit\u00adere Dinge sich\u00adern m\u00f6cht\u00aden, k\u00f6n\u00adnen wir Sicherun\u00adgen auch grup\u00adpieren. Dazu ist zuerst eine neue Gruppe (\u201cBear\u00adbeit\u00aden \/ Neue Gruppe \u2026\u201d) zu erzeu\u00adgen, die zum Beispiel \u201cSicherungskram\u201d genan\u00adnt wer\u00adden kann.<\/p>\n<p>Dann geht\u2019s an die Sicherun\u00adgen selb\u00adst. Per \u201cBear\u00adbeit\u00aden \/ Neues Ziel \u2026\u201d (etwas missver\u00adst\u00e4ndlich \u00fcber\u00adset\u00adzt, bess\u00ader w\u00e4re vielle\u00adicht \u201cNeue Sicherung\u201d) kann eine solche ini\u00adtial\u00adisiert wer\u00adden. Dabei ist es unten im Dia\u00adlog m\u00f6glich, die Art der Sicherung auszuw\u00e4hlen. \u201cDelta\u201d ist die inkre\u00admentelle Sicherung, die nur ge\u00e4n\u00adderte Teile spe\u00adichert \u2014 <b>allerd\u00adings in ein jew\u00adeils neues Archiv<\/b> mit ein\u00adstell\u00adbarem Namen (Stan\u00addard ist das aktuelle Datum im For\u00admat Jahr-Monat-Tag). Es ist, anders als bei rsync, also nicht m\u00f6glich, einen einzi\u00adgen Back\u00adu\u00adpord\u00adner ohne tag\u00adbasierte Unterord\u00adner (man m\u00f6chte vielle\u00adicht immer nur die aktuell\u00adste Ver\u00adsion auf\u00adbe\u00adwahren) inkre\u00admentell zu pfle\u00adgen, nur eine nicht inkre\u00admentelle Vari\u00adante (\u201cImage\u201d) ist ver\u00adf\u00fcg\u00adbar. Das ist etwas schade.<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Ziel-bearbeiten.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Ziel-bearbeiten-300x195.png\" alt=\"Areca - Ziel bearbeiten\" width=\"300\" height=\"195\" class=\"alignnone size-medium wp-image-8284\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Ziel-bearbeiten-300x195.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Ziel-bearbeiten-120x78.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Ziel-bearbeiten.png 709w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Unter \u201cQuellen\u201d kann nun aus\u00adgew\u00e4hlt wer\u00adden, was gesichert wer\u00adden soll. Dort kann der \u201cneue Ord\u00adner\u201d, den wir sich\u00adern wollen, ein\u00adfach hinzuge\u00adf\u00fcgt wer\u00adden \u2014 ein Herum\u00adspie\u00adlen mit Optio\u00adnen ist nicht notwendig. Inter\u00ades\u00adsant ist auch der \u201cFilter\u201d-Dialog: Dort k\u00f6n\u00adnen bes\u00adtimmte Unterord\u00adner, Dateien und Date\u00aditypen \u2014 etwa unser <em>*.tmp<\/em> \u2014 von der Sicherung in diesen Ord\u00adner ausgenom\u00admen wer\u00adden. Are\u00adca unter\u00adst\u00fctzt auch Ver\u00adschl\u00fcs\u00adselung und Kom\u00adpres\u00adsion der Daten\u00adsicherun\u00adgen. Klickt ein\u00adfach mal in diesem Dia\u00adlog herum.<\/p>\n<p>Wenn alles fer\u00adtig ist, erscheint die Sicherung im \u201cBaum\u201d im Are\u00adca-Fen\u00adster:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Baum.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Baum-206x300.png\" alt=\"Areca-Baum\" width=\"206\" height=\"300\" class=\"alignnone size-medium wp-image-8285\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Baum-206x300.png 206w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Baum-82x120.png 82w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/Areca-Baum.png 355w\" sizes=\"auto, (max-width: 206px) 100vw, 206px\"><\/a><\/p>\n<p>Per Recht\u00adsklick kann die Sicherung nun simuliert wer\u00adden. Wenn alles zur eige\u00adnen Zufrieden\u00adheit geklappt hat, ste\u00adht der eigentlichen Sicherung (eben\u00addort) nichts mehr im Weg.<\/p>\n<p>Ach so, Are\u00adca bringt auch eine <a href=\"http:\/\/www.areca-backup.org\/documentation.php#tocHelp38\">Kom\u00adman\u00addozeilen\u00adver\u00adsion<\/a> mit, die aber etwas umst\u00e4ndlich zu bedi\u00adenen ist. Ich per\u00ads\u00f6n\u00adlich halte <tt>robo\u00adcopy<\/tt> unter Win\u00addows (und rsync unter Lin\u00adux und BSD) f\u00fcr bess\u00ader bedi\u00aden\u00adbar, zu <tt>robo\u00adcopy<\/tt> komme ich weit\u00ader unten noch.<\/p>\n<p>Die anderen bei\u00adden Pro\u00adgramme n\u00e4m\u00adlich, die mir pos\u00adi\u00adtiv aufge\u00adfall\u00aden sind, sind zwar nicht quellof\u00adfen, f\u00fcr Win\u00addows\u00adnutzer aber schon deswe\u00adgen inter\u00ades\u00adsant, weil sie mit\u00adtler\u00adweile fes\u00adter Bestandteil des Sys\u00adtems sind:<\/p>\n<p><b>1. Win\u00addows Back\u00adup<\/b><\/p>\n<p>Das gute, alte Win\u00addows-Back\u00adup, <em>damals<\/em> noch trist und eher funk\u00adtion\u00adss\u00adchwach, hat sich inzwis\u00adchen zu einem voll\u00adw\u00ader\u00adti\u00adgen Ersatz f\u00fcr Are\u00adca gemausert, beherrscht auch inkre\u00admentelle Sicherun\u00adgen und eine voll\u00adst\u00e4ndi\u00adge Inte\u00adgra\u00adtion in den Win\u00addows-Auf\u00adgaben\u00adplan\u00ader, so dass man sich nicht mehr selb\u00adst darum k\u00fcm\u00admern m\u00fcss. Bl\u00f6d: <a href=\"http:\/\/windows.microsoft.com\/de-de\/windows7\/back-up-your-files\">Die Ein\u00adrich\u00adtung ist etwas umst\u00e4ndlich<\/a>. Wer aber auf der Suche nach einem guten Sicherungssys\u00adtem unter Win\u00addows ist, der sollte zumin\u00add\u00adest ein\u00admal \u00fcber\u00adpr\u00fcfen, ob Win\u00addows\u2019 eigenes Back\u00adup\u00adsys\u00adtem die Anforderun\u00adgen erf\u00fcllt; vielle\u00adicht erspart das etwas Aufwand.<\/p>\n<p><b>2. robo\u00adcopy<\/b><\/p>\n<p><tt>robo\u00adcopy<\/tt>, ein d\u00e4m\u00adlich\u00ades Wort\u00adspiel mit \u201cRobo\u00adcop\u201d sowie einst Teil des \u201cResource Kits\u201d (also ein\u00ader <a href=\"http:\/\/de.wikipedia.org\/wiki\/Resource_Kit\">Samm\u00adlung von Admin\u00adis\u00adtra\u00adtionswerkzeu\u00adgen<\/a> f\u00fcr Win\u00addows), seit Win\u00addows Vista stan\u00addard\u00adm\u00e4\u00dfig dabei, ist ein Kom\u00adman\u00addozeilen\u00adwerkzeug, das dem einst emp\u00adfohle\u00adnen <tt>xcopy32<\/tt> einiges voraus hat. Um es zu ver\u00adwen\u00adden, ben\u00f6ti\u00adgen wir zun\u00e4chst mal eine Kom\u00adman\u00addozeile (etwa <tt>cmd<\/tt> oder <a href=\"https:\/\/tuxproject.de\/blog\/2011\/03\/console2-und-pycmd-cmd-fur-fortgeschrittene\/\">PyCmd<\/a>). Dort l\u00e4sst sich ein \u00dcberblick \u00fcber die vielf\u00e4lti\u00adgen F\u00e4higkeit\u00aden von <tt>robo\u00adcopy<\/tt> mit\u00adtels <tt>robo\u00adcopy \/?<\/tt> erhal\u00adten:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter-300x199.png\" alt=\"robocopy-Parameter\" width=\"300\" height=\"199\" class=\"alignnone size-medium wp-image-8286\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter-300x199.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter-120x79.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter-900x598.png 900w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Parameter.png 959w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>F\u00fcr unsere Zwecke \u2014 die ein\u00adseit\u00adige inkre\u00admentelle Spiegelung eines Ord\u00adners in einen anderen \u2014 ben\u00f6ti\u00adgen wir fol\u00adglich drei Para\u00adme\u00adter:<\/p>\n<ol>\n<li><tt>\/MIR<\/tt>: Spiegelt die Verze\u00adich\u00adnis\u00adstruk\u00adtur, ent\u00adfer\u00adnt im Orig\u00adi\u00adnal gel\u00f6schte Dateien im Zielord\u00adner.<\/li>\n<li><tt>\/M<\/tt>: Kopiert nur Dateien mit geset\u00adztem Archivbit, set\u00adzt dieses Bit nach dem Kopieren zur\u00fcck.<br>\n(Anstelle der Option <tt>\/M<\/tt> kann auch <tt>\/XO<\/tt> ver\u00adwen\u00addet wer\u00adden, das Dateien, die \u00e4lter als die let\u00adzte Sicherung sind, \u00fcber\u00adspringt. Dies ist aber zeit\u00adstem\u00adpelab\u00adh\u00e4ngig \u2014 den d\u00fcr\u00adfen wir hier also nicht mitkopieren. <tt>robo\u00adcopy<\/tt> tut dies stan\u00addard\u00adm\u00e4\u00dfig nicht.)<\/li>\n<li><tt>\/XF *.tmp<\/tt>: \u00dcber\u00adspringt alle Dateien\/Unterordner, die auf <em>*.tmp<\/em> passen.<\/li>\n<\/ol>\n<p>Der voll\u00adst\u00e4ndi\u00adge Befehl, um unsere gew\u00fcn\u00adschte Sicherung anzule\u00adgen, lautet also: <tt>robo\u00adcopy \u201cC:\\Users\\hp\\Desktop\\Neuer Ord\u00adner\u201d G:\\Test\\ \/MIR \/M \/XF *.tmp \/L<\/tt>. Der Para\u00adme\u00adter <tt>\/L<\/tt> sorgt daf\u00fcr, dass der Vor\u00adgang zun\u00e4chst nur simuliert wird:<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Simulation.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Simulation-300x63.png\" alt=\"robocopy-Simulation\" width=\"300\" height=\"63\" class=\"alignnone size-medium wp-image-8287\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Simulation-300x63.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Simulation-120x25.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2013\/08\/robocopy-Simulation.png 592w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Wenn alles geklappt hat und <tt>robo\u00adcopy<\/tt> keine Fehler aus\u00adgibt, kann <tt>\/L<\/tt> wegge\u00adlassen wer\u00adden. Um <em>exakt den gle\u00adichen Befehl<\/em> sp\u00e4ter wieder\u00adholen zu k\u00f6n\u00adnen, kann \u00fcbri\u00adgens auch <tt>robo\u00adcopy<\/tt> Auftr\u00e4ge spe\u00adich\u00adern: Der Para\u00adme\u00adter <tt>\/SAVE:Sicherung<\/tt> spe\u00adichert den Beispielfall, sp\u00e4ter gen\u00fcgt die Eingabe von <tt>robo\u00adcopy \/JOB:Sicherung<\/tt> zum erneuten Abruf.<\/p>\n<p>Beson\u00adders n\u00fct\u00adzlich wird <tt>robo\u00adcopy<\/tt>, wenn man es in ein\u00ader Batch\u00addatei, also in Verbindung mit anderen Befehlen oder als Samm\u00adlung von <tt>robo\u00adcopy<\/tt>-Abl\u00e4ufen, benutzt. Das The\u00adma Batch\u00adpro\u00adgram\u00admierung w\u00fcrde hier jedoch den Rah\u00admen spren\u00adgen, ich ver\u00adweise daher hier\u00adf\u00fcr auf <a href=\"http:\/\/de.wikibooks.org\/wiki\/Batch-Programmierung\">Wik\u00adi\u00adbooks<\/a>.<\/p>\n<p>Gibt es Erg\u00e4nzun\u00adgen, vielle\u00adicht gar Aler\u00adna\u00adtiv\u00aden zu cwR\u00adsync, die weit\u00ader\u00adhin unkom\u00admerziell weit\u00ader\u00aden\u00adtwick\u00adelt wer\u00adden? In den Kom\u00admentaren sind sie gern gese\u00adhen!<\/p>\n<hr>\n<p>*: zum Beispiel Pornos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor etwa drei Jahren hat\u00adte ich beschrieben, wie man mit cwR\u00adsync unter Win\u00addows seine wichti\u00adgen Dateien (*) effizient sich\u00adern kann. Mit Bedauern stellte ich nun gestern fest, dass cwR\u00adsync offen\u00adbar peu a peu in eine kom\u00admerzielle L\u00f6sung umge\u00adwan\u00addelt wird. \u00c4rg\u00ader\u00adlich, aber ver\u00adst\u00e4ndlich. Sicher\u00adheit\u00adshal\u00adber begab ich mich auf die Suche nach Alter\u00adna\u00adtiv\u00aden. F\u00fcr meine Zwecke ben\u00f6tige \u2026<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/2013\/08\/schoener-sichern-unter-windows-teil-2-alternativen-zu-rsync\/\" class=\"more-link\">\u2018Sch\u00f6n\u00ader sich\u00adern unter Win\u00addows (Teil 2): Alter\u00adna\u00adtiv\u00aden zu rsync\u2019 weit\u00ader\u00adlesen \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[19],"tags":[],"series":[],"class_list":["post-8283","post","type-post","status-publish","format-standard","hentry","category-nerdkrams"],"share_on_mastodon":{"url":"","error":""},"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/8283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/comments?post=8283"}],"version-history":[{"count":0,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/8283\/revisions"}],"wp:attachment":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/media?parent=8283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/categories?post=8283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/tags?post=8283"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/series?post=8283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}