Diskussion zu "Automatische Backups und Syncs unter OS X"

@niclas-eric
Kein Problem.
Zu deinen Fragen (die nicht nerven, da sie sich mit dem Thema auseinandersetzen):
Macsync kenne ich leider nicht, dazu kann ich nichts sagen.
Du kannst mehrere Kommandos aneinanderreihen oder die von mir vorgeschlagene Schleife nutzen.
while read quelle ziel do
/usr/bin/time /usr/bin/rsync -avE $quelle/ $ziel/ > $ziel/protokoll.log
done < list.txt
Dieses Skript setzt voraus, dass es eine Datei "list.txt" gibt, in der in jeweils einer Zeile Quell- und Zielverzeichnis stehen, getrennt durch ein Leerzeichen. Beispiel:
/Quelle01 /Ziel01
/Quelle02 /Ziel02
/Quelle03 /Ziel03
usw. etc. pp
Du hast eine Datei "list.txt", die auch dein Herr Vater mit Textedit erstellen kann, in der alle Verzeichnisse stehen. Diese wird solange abgearbeitet, bis das Ende erreicht ist. Aber bitte keine Leerzeile am Ende der Datei erzeugen, sonst gibt es einen Fehler.
Ich glaube hier liegt ein weiterer Verständnisfehler vor. Synchronisieren bedeutet grundsätzlich, dass sich, nach erfolgter Synchronisation, Quelle und Ziel gleichen wie ein Ei dem anderen. Es ist eine "Spiegelung" der Daten. Hast du in deinem Quellverzeichnis Musikstücke gelöscht, so werden diese, nach der Synchronisation, auch im Zielverzeichnis nicht mehr vorhanden sein.
Es gibt verschiedene Parameter in rsync, die dieses Verhalten beeinflussen. Um den Fred nicht unnnötig aufzublähen, muss ich dich auf die Man-Page verweisen (man rsync).
Desweiteren kann man keine zwei Dateien miteinander "verschmelzen". Die Änderungen in der XML-Library deiner Quelle kannst du leider nicht in die XML-Libray deines Zieles einbringen und umgekehrt. Entweder ersetzt die Quelle das Ziel oder sie exisitieren beide nebeneinander. :(
Deinen Home-Ordneer kannst du komplett synchronisieren. Aber Vorsicht! Du erzeugst eine 1:1 Kopie. D.h. dein Ziel Home-Verzeichnis ist dann gleich dem Quell Home-Verzeichnis.
Zu Applescript fragst du besser sheep, maceis oder andere. Damit kenne ich mich nicht so gut aus. Aber ich denke, das es da eine Lösung gibt.
Aporopos UT: UT2004 habe ich nicht so oft gespielt, lieber das klassische UT. Seit den Sparmaßnahmen unserer Firma komme ich auch nicht mehr so oft nach HH. Schade. ;)
 
hatty schrieb:
...
Zuerst eine Abbitte an maceis: Ich werde ziemlich viel zitieren müssen, da niclas-eric's Beitrag etwas zurückliegt. Ich hoffe, du siehst es mir nach.
...
Da gibt es nichts nachzusehen, wenn man so zitiert, wie Du das machst. Das ist ja geradezu vorbildlich ;).
Mich stört nur, wenn aus Gedankenlosigkeit oder Bequemlichkeit komplette Beiträge zitiert werde, oft ohne, dass überhaupt ein Zusammenhang zur eigenen Antwort besteht.

Was das Abgleichen von iTunes o.ä. Libraries angeht, dürfte dann ein Problem bestehen, wenn auf beiden Rechnern Musikstücke hinzugefügt wurden. Dann ist nämlich nicht gewährleistet, dass die neueste Datei alle Informationen enthält.

In Bezug auf das Vorhalten mehrerer Versionen der Dateien möchte ich mal eine Alternative vorschlagen.
Man könnte ein Skript schreiben, das z.B. einmal pro Woche (oder pro Monat) ein tar Archiv des gesamten zu sicherenden Datenbestandes erstellt.
Dazwischen erstellt man täglich ein Archiv aller Dateien, deren Änderungsdatum <= 24 Stunden ist.
Die Archive werden durchnummeriert und der Zähler aller Archive täglich um eins hochgesetzt; das kann man mit einer einfachen for Schleife erledigen. Dadurch werden außerdem Archive die älter sind als x Tage überschrieben.
Die Archive können zusätzlich komprimiert werden um Speicherplatz zu sparen.
Das ist nach meiner Ansicht eine sehr komfortable, pflegeleichte Lösung.
 
hatty schrieb:
...
Desweiteren kann man keine zwei Dateien miteinander "verschmelzen". Die Änderungen in der XML-Library deiner Quelle kannst du leider nicht in die XML-Libray deines Zieles einbringen und umgekehrt.
...
Um solch eine Aufgabe zu lösen würde sich Perl anbieten.
Ein entsprechendes Skript ist aber sicher nicht in fünf Minuten erstellt.
Voraussetzung ist außerdem eine genaue Kenntnis der Struktur der xml Datei.
Mit etwas Bastelarbeit sollte das zu lösen sein und würde sicher den einen oer anderen Freund finden.
 
macSync ist ein script mit dem man einfach solche backup/sync scripts erstellen kann. der verfasser dieses threads hat es selber gepostet. hier gibts das zu laden: klick mich
ich habe grad getestet, dass man bei dem damit erzeugten script einfach manuell mehrere ordner hinzugfügen kann, indem man den text des erzeugten scripts dupliziert und einfach andere pfade einsetzt.

leider muss auch danach der finder neu gestertet werden um alle kopierten dateien zu sehen. ist bei meinem system was nicht in ordnung oder ist das bei anderen auch so?

@ hatty:

dein 3-zeiliges script will bei mir im terminal nicht so wie es soll. kann es daran liegen dass man die list-txt datei an nen bestimmten ort legen muss damit sie erkannt wird?

@ maceis:

das mit den librarys von itunes und iphoto das synchronisieren nicht funktioniert das war mir schon irgendwie klar. aber jetzt habe ich ja die bestätigung. ist aber nicht so schlimm, weil meinem vater nur maisl, adressen, und dokumente wichtig sind.
gibt es sonst noch etwas im user ordner (ausser itunes/iphoto library und dem library ordner) was beim syncen probleme verursacht?

ich bedanke mich nochmal bei euch allen für die hilfe. ich denke ich bin fast am ziel.


kann man die mit macSync erstellte sync.command datei auf irgend einem wege so konfigurieren dass sie beim mounten der zielplatzte automatisch startet?
mein vater ist ja jetzt schon verwirrt wenn er retrospect (wird für backups auf externe platten weiterhin benutzt) nach dem anstecken der backup-platte manuell starten muss. hier würde das ja zusätzlich noch beim verbinden der beiden computer miteinander nötig sein.


ist es notwendig beim syncen von z.b. der mails auch das entsprechende programm mail zu beenden? oder merkt mail automatisch dass da was geändert wurde im hintergrund?


EDIT: @ maceis:

ich bin kein programmierer. wie man sowas mit perl (was auch immer das sein mag) programmieren kann weiss ich nicht.
aber wenn jemand lust dazu hat, dann würde ich gerne ein paar tipps entgegen nehmen.

hab was zum syncen von zwei itunes librarys gefunden: klick mich
 
Zuletzt bearbeitet von einem Moderator:
Ui, dieser Thread explodiert ja förmlich :). Wobei mich die grosse Resonanz natürlich freut!

nicolas-eric schrieb:
wenn ich so ein unix-programm zum syncen erstellt habe, was muss ich tun damit es per doppelklick startet
Du brauchst nichts weiter zu tun, als das Script mit der Endung .command zu versehen.
 
sheep schrieb:
Du brauchst nichts weiter zu tun, als das Script mit der Endung .command zu versehen.

ok habe ich gemacht. mit der endung geht das jetzt wunderbar. indem ich das mit macsync erzeugte einfach in textedit erweitert habe werden auch gleich mehrere ordner gesynct.

aber sowohl das manuell erzeugte als auch das mit macSync erzeugte script machen noch ein problem. das ergebnis des syncens ist erst nach einem finder-restart oder aus-/einloggen sichtbar. vorher werden die gesyncten neuen dateien in den ordnern nicht angezeit. kann ich etwas dagegen machen?

die letzte frage ob beim syncen die betreffenden programme zu sein sollten ist leidernoch offen.

ich bin total begeistert, dass das betriebssystem von alleine diese ganzen möglichkeiten bietet. sowas suche ich schon seit jahren!
danke an euch alle für eure hilfe.
 
@nicolas-eric

Sorry, ich bin jetzt gleich bei beiden Sachen etwas überfragt. Die Änderungen werden bei mir im Finder eigentlich sofort angezeigt, ein Neustart des Finders ist nicht nötig. Programme beende ich während dem Sichern nie, nicht einmal während einem System-Clon - praktisch habe ich keine negativen Auswirkungne festgestellt, ich könnte mir aber (ohne es zu wissen) schon vorstellen, dass vereinzelte Daten nicht gesichert werden können, weil gerade ein Programm da rein schreibt.
 
ich weiss nur dass z.b. retrospect mails die grad geöffnet sind beim backup nicht kopiert.
ich werde in den kommenden tagen mal neustarten. der rechnet jetzt schon seit 12 tagen. ich gehe davon aus das der ohne 100% prozessorlast nach nem neustart das auch ordentlich macht.
das problem mit den nicht zu sehenden gesyncten dateien hatte ich grad an meinem PB nicht.

danke nochmal für die ganze hilfe...!!!
 
@ sheep (#78)
Es scheint wirklich unterschiedliche Auffassungen von 'inkrementellem Backup' zu geben. Die Frage ist offenbar, ob einzelne Dateien die geändert wurden, als Ganzes gesichert werden (sozusagen als aktualisiertes Duplikat, davon ging ich bisher aus) oder ob lediglich die geänderten Teile der Datei gesichert werden. Ob rsync das standardmässig so macht kann nicht beurteilen, stelle es mir aber sehr aufwändig vor - vor allem, wenn es an das Rekonstruieren von Dateien geht.

@ hatty (#82)
Eine tägliche Vollsicherung (Spiegelung des gesamten Systems) habe ich nicht vor, diese erfolgt bei mir in längeren Abständen per CCC. Es geht mir beim inkrementellen Backup nur darum, auf ältere Versionen gerade in Arbeit befindlicher Dateien zurückgreifen zu können. Retrospect fertigt hierzu offenbar Duplikate an und verwaltet diese in einer Datenbank, d.h. die Rekonstruktion funktioniert nur über Retrospect. Das stört mich aber, ich würde gerne direkt auf die alten Dateiversionen zurückgreifen können - deshalb wäre evtl. eben rsync für mich interessant. (Das das nicht ewig geht und ich nicht endlos Duplikate sammeln kann ist schon klar und auch in Retrospect nicht vorgesehen. Dort macht man dann von Zeit zu Zeit 'Recycling Backups' (quasi Spiegelungen) und schmeisst das alte Zeug raus.)
 
Zuletzt bearbeitet:
bowman schrieb:
@ sheep (#78)
Es scheint wirklich unterschiedliche Auffassungen von 'inkrementellem Backup' zu geben. Die Frage ist offenbar, ob einzelne Dateien die geändert wurden, als Ganzes gesichert werden (sozusagen als aktualisiertes Duplikat, davon ging ich bisher aus) oder ob lediglich die geänderten Teile der Datei gesichert werden.
...
Das mag daran liegen, dass es zwei Varianten des inkrementellen Backups gibt:
- differentiell inkrementelles Backup
- kumulativ inkrementelles Backup

Gesichert wid von rsync in beiden Fällen die komplette Datei, ob die Datei komplett gesendet wird oder nur der geänderte Teil kann man einstellen. Bei einem Backup mit lokalen Pfaden wird standardmäßig die ganze Datei gesendet.
 
@maceis
Danke für die Blumen. :p
@sheep
Ich wusste doch, dass es da einen einfacheren Weg gibt. Da habe ich mal wieder was gelernt. ;)
Zur Explosion: Ich bin die nächsten Tage leider verhindert. Aber ich werde nächste Woche versuchen unsere Ergebnisse zusammenzufassen, damit nicht immer der gesamt Fred durchgelesen werden muss.
@daskas
Sorrry, dein Beitrag ist, unverdienterweise, völlig untergegangen. :(
An deinem Skript sieht man, dass du, wenn auch angeblich mit Mac, UNIX und Shell nicht so vertraut, kein Neuling beim Programmieren bist. Die letzten Zeilen kann man bestimmt zusammenfassen, wenn ich jetzt ad hoc auch nicht weiß wie. :rolleyes:
Auf jeden Fall scheint dein Vorschlag eine gute Lösung zu sein, um "verpennte" Backups zu vermeiden. Eine Benachrichtigung per Mail, ob ein Backup nun stattgefunden hat oder nicht, wäre noch das Sahnehäubchen. ;)
 
Hallo,

bei mir mir rsync leider eine Fehlermeldung

....
....
Liste der Files die kopiert werden
....
....
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-20/rsync/main.c(717)

Hat jemand eine Idee?

Danke

Gruss

naax
 
Code:
EXIT VALUES
   ...
   23     Partial transfer due to error
   ...
Hilft jetzt auch nicht wirklich.
Du kannst Dir ja mal in "man rsync | less -p EXIT" die übrigen exit codes ansehen;
Dann weisst Du schon mal was es nicht ist.
 
@ hatty
wenn ich das richtig verstanden habe, kann man eine mail erhalten, wenn der cron job gescheitert ist.(steht irgendwo weiter oben).
sequentielles programmieren habe ich schon gemacht (viel matlab). mein problem ist daher primär der blöde syntax in fremden sprachen (shell scripting) und erst sekundär der programmfluss :(
 
Äh....? Entweder ich hab was überlesen, oder ich hab was falsch verstanden.

Mit rsync macht man ein Replikat. Ein Replikat ist kein Backup!

rsync überträgt nur dann (geänderte) Teile einer Datei, wenn auf dem Zielsystem der rsync-daemon läuft. Denke ich. Bin bei rsync leider nicht bewandt.

Ein Vollbackup sichert alle zu sichernden Dateien.
Ein Inkrementelles Backup sichert alle seit dem letzten Voll- oder Inkrementalbackup geänderten Dateien.
Ein Differenzbackup sichert alle seit dem letzten Vollbackup geänderten Dateien.

Koshima
 
Zuletzt bearbeitet:
Koshima schrieb:
...
Mit rsync macht man ein Replikat. Ein Replikat ist kein Backup!
...
Kannst Du den Unterschied definieren?
Koshima schrieb:
...
rsync überträgt nur dann (geänderte) Teile einer Datei, wenn auf dem Zielsystem der rsync-daemon läuft. Denke ich. Bin bei rsync leider nicht bewandt.
...
Unsinn ;).
Wenn Du nicht bewandert bist, dann lies doch mal die manpage.

Koshima schrieb:
...
Ein Inkrementelles Backup sichert alle seit dem letzten Voll- oder Inkrementalbackup geänderten Dateien.
Ein Differenzbackup sichert alle seit dem letzten Vollbackup geänderten Dateien.
...
Das macht keinen Sinn, da jede seit dem letzten inkrementellen Backup geänderten Dateien in jedem Fall auch seit dem letzten Vollbackup geändert wurde.
Damit wäre nach Deiner Definition Inkrementalbackup== Differenzbackup.
 
Zuletzt bearbeitet:
Also ich verstehe das auf der Seite http://samba.anu.edu.au/ftp/rsync/rsync.html unter Abschnitt "CONNECTING TO AN RSYNC DAEMON" so, wie ich es oben geschrieben habe. Sicherlich geht rsync auch ohne den Daemon auf der Gegenseite, jedoch kann man dann nicht mehr von der effizienten Delta-Übertragung (das "Remote Update Protocol") profitieren.

Vielleicht hab ich mich bei der Definition von Inkrementellem- und Differenz-Backup missverständlich ausgedrückt. Mir fällt auch leider keine "griffige" Beschreibung ein. Eventuell kann ich es anhand eines Beispieles verständlich machen:

Eine "übliche" Strategie ist es, z.B. Sonntags ein Vollbackup, und jeden anderen Tag ein Differenz- oder Inkrementalbackup zu machen. Ich habe also pro Woche sieben Backups, wobei eines sehr groß, sechs mehr oder weniger klein sind. Ändere ich an den sechs Tagen keine Dateien, so habe ich sechs "leere" Backups. Der Unterschied zwischen Diff- oder Inc-Backup: ändere ich z.B. am Dienstag eine Datei, so habe ich bei einem Inkrementellen Backup nur im Dienstags-Backup diese Datei drin (und natürlich im Vollback), in allen anderen nicht. Bei einem Differentiellen Backup habe ich ab Dienstag jeden Tag diese Datei drin, also Mittwoch bis Samstag.

Sorry, kann es leider nicht besser beschreiben.
 
Hab den Unterschied vergessen:

Ein Replikat (z.B. mittels rsync) ist das genaue Ebenbild der originalen Dateien. Lösche ich im Original ausversehen eine Datei, wird dieses Löschen auch repliziert! Wenn ich ein tägliches Sync mache, heute eine Datei lösche und die morgen wiederhaben will, so hab ich verloren.

Ein Backup sichert Dateien idealerweise nicht nur einfach, sondern eben mehrfach. Im Beispiel oben: Dienstags eine Datei gelöscht, Freitags das gemerkt, und im Vollbackup vom letzten Sonntag ist sie noch drin. Mit Replikat keine Chance!

Siehe auch http://de.wikipedia.org/wiki/Backup
 
Zuletzt bearbeitet:
Und wie kommst Du auf die (flasche) Idee, dass rsync unaufgefordert Daten löscht?
 
Natürlich kann man das auch abschalten, aber ein "synchronhalten" beinhaltet erst einmal auch das Löschen im Replikat, wenn im Original gelöscht wurde.

Selbst wenn nichts gelöscht wird: lösch heute im Adressbuch eine Adresse und morgen (nach einem sync) willst Du sie wiederhaben. Mit rsync gehts nicht, mit einem Backup (was man sicherlich auch mittels rsync machen kann - dann brauchts aber noch ein bisschen mehr) gehts eben doch. Du hast da eine veränderte Datei, und mit einem Replikat hast Du eben nur die letzte Version (die in diesem Fall die gelösche Adresse eben nicht mehr enthält).

Ein Backup mittels einer Replizierung muss mehrere Stände halten, also z.B. rsync in sieben Verzeichnissen - wobei man da ein bisschen Gehirnschmalz reinstecken müsste, weil man sonst die siebenfache Datenmenge hätte.
 
Zurück
Oben Unten