PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : StoreBackup - Mehrere Backups in einen Ordner



mh3rm4nn
19.06.13, 22:32
Hallo liebe community,

Ich bin neulich auf StoreBackup (http://storebackup.org) gestoßen, als super backup Programm. Damit kann man super verschiedene Version von seinen Files backupen. Aber irgendwie fehlt mir da eine simple Funktion, und ich weiß nicht, ob das mit StoreBackup überhaupt geht. Deshalb hier folgende Situation und Frage:

Ich habe ein Laptop mit wenig Festplattenspeicher und eine Externe Festplatte mit viel Speicher. Auf meinem Laptop gibt's einen Ordner "videos" mit einem file namens "video1.flv". Jetzt verwende ich StoreBackup um die Datei auf der externen Festplatte zu sichern. Dabei wird auf der externen Festplatte ein neuer Ordner erstellt, mit dem aktuellen Datum. Da rein kommt dann der Ordner "videos" mit der einen Videodatei. Jetzt lösche ich auf meinem Laptop die Datei "video1.flv", weil ich sonst nicht genug speicher hätte und lade ein neues Video aus dem Internet runter namens "video2.flv". Das will ich auch auf meiner externen Festplatte speichern. RestoreBackup erstellt wieder einen neuen Ordner mit dem aktuellen Datum und da drinnen gibt's dann den Ordner videos mit der Datei "video2.flv". Mal angenommen, das mache ich mit noch weiteren 50 videos. Jetzt fahr ich in den Urlaub und will mich entscheiden, welches von meinen 52 Videos ich auf meinem Laptop mitnehme, damit mir nicht langweilig wird. Das Problem ist, dass die 52 Videos in 52 Ordnern auf der externen Festplatte verteilt sind und ich nicht weiß, wo genau, weil ich mich natürlich nicht daran erinnere, wann ich welches Video gesichert habe.
Dazu jetzt meine Frage: Gibt es eine Möglichkeit mit StoreBackup über mehrere Backups hinweg alle Dateien immer in den selben Ordner zu speichern? Also so, dass ich zu jedem Zeitpunkt immer einen Ordner "videos" auf der externen Festplatte habe, der alle videos enthält. Ich hoffe jemand kennt sich damit aus und kann mir weiterhelfen. :)

Wenn das hier das falsche Forum ist, wäre ich auch sehr dankbar über einen Link zu einer besseren Stelle wo jemand eine Antwort kennen könnte.

Ich verwende:
StoreBackup 3.2.1
Debian 3.2.41-2 x86_64 GNU/Linux

marce
20.06.13, 07:14
doofe Frage: Wenn Du eh alle Videos in dem einen Ordner haben willst - wieso so kompliziert anstatt das File einfach nach dort zu kopieren / verschieben / ...?

pibi
20.06.13, 07:14
Jetzt fahr ich in den Urlaub und will mich entscheiden, welches von meinen 52 Videos ich auf meinem Laptop mitnehme, damit mir nicht langweilig wird.Dann nimm eben den Laptop und die Festplatte mit;-)

Spass beiseite: Wenn das beschriebene Szenario der einzige Anwendungsfall fuer Dein Backup-Programm ist, wuerde ich einen Einzeiler mit "rsync" empfehlen bzw. sogar ein simples "cp" verwenden.

Gruss Pit.

hjclaes
20.06.13, 11:27
Hallo,



Dazu jetzt meine Frage: Gibt es eine Möglichkeit mit StoreBackup über mehrere Backups hinweg alle Dateien immer in den selben Ordner zu speichern? Also so, dass ich zu jedem Zeitpunkt immer einen Ordner "videos" auf der externen Festplatte habe, der alle videos enthält. Ich hoffe jemand kennt sich damit aus und kann mir weiterhelfen. :)


der Sinn dieser Historisierung ist, eine Historie zu haben :rolleyes: .
Alles mit demselben Namen in einen Ordner zu packen geht übrigens auch nicht, weil so neu angelegte Dateien mit demselben Namen im Backup nicht mehr unterscheidbar und damit speicherbar wären.

Da storeBackup die Backups einfach ins Dateisystem legt, sind sie auch einfach wiederzufinden. Du kannst Dir mit:

$ find <backupDir> -name "*.flv" -print

alle Dateien anzeigen lassen. (für <backupDir> den Pfad zum Backup Directory einsetzen).

mit:

$ find <backupDir> -name "*.flv" -print | grep video1.flv

kannst Du den Pfad zu video1.flv herausfiltern.

Mit

$ find <backupDir> -name "*.flv" -print | less

kannst Du in der Liste herumscrollen und interaktiv suchen.

Falls die Filme mit bzip2 komprimiert sein sollten (bringt nichts), musst Du natürlich nach "*.flv.bz2" suchen.



Ich verwende:
StoreBackup 3.2.1


Debian hinkt momentan leider hinterher. Version 3.3.1 ist draußen und hat diverse Bugfixes. Vor Allem gibt's einiges Neues http://www.nongnu.org/storebackup/de/node7.html, wie z.B. Replikation von Backups und offline-Backups.

Grüße, hjclaes

mh3rm4nn
20.06.13, 18:17
Danke für die schnellen und zahlreichen Antworten :)


wieso so kompliziert anstatt das File einfach nach dort zu kopieren / verschieben / ...?

Einzeiler mit "rsync" empfehlen bzw. sogar ein simples "cp" verwenden.
Naja, ein einfaches copy bietet nicht die Möglichkeit von hardlinks, automatischem Komprimieren, usw.


der Sinn dieser Historisierung ist, eine Historie zu haben
Alles mit demselben Namen in einen Ordner zu packen geht übrigens auch nicht, weil so neu angelegte Dateien mit demselben Namen im Backup nicht mehr unterscheidbar und damit speicherbar wären.
Hmm, ich glaube es war mir bis vor kurzem selber nicht ganz klar was ich eigentlich möchte. Also den Großteil der Daten will ich einfach nur Backupen, da würde eine einfache Kopie schon fast reichen. Aber es gibt auch files, von denen ich dann gerne eine Versionsgeschichte hätte. Die sollten dann aber genauso einfach zum wiederfinden sein, wie der Rest der Daten. Ich stell mir das grad so vor: Ich mach ein komplettes Backup von allen Daten auf meinem Laptop auf die externe Festplatte. Einige Zeit später, haben sich ein paar Daten geändert (z.B. irgendwelche Skripte an denen man gearbeitet hat), ein paar neue sind dazu gekommen und ein paar Dateien wurden gelöscht. Wenn ich jetzt ein weiteres Backup mache, möchte ich folgendes Szenario haben. Die neuen Dateien sollen in die entsprechenden Ordner auf der externen Festplatte gespeichert werden, die bereits existieren. Die gelöschten Dateien sollen auf der externen Festplatte bleiben, es soll also nichts damit gemacht werden. Von den geänderten Dateien soll eine neue Version gespeichert werden. Das könnte so aussehen, dass die Datei, die schon vorher auf der externen Festplatte war, durch einen Ordner mit dem selben (oder ähnlichen) Namen ersetzt wird und in dem Ordner befinden sich dann weitere Ordner, von denen jeder eine unterschiedliche Version der Datei enthält und die nach dem Änderungsdatum der Datei benannt sind.
Zusätzlich werden große Datein automatisch in Blöcke geteilt und komprimiert sowie Hardlinks erstellt. EDIT: Achja, die Möglichkeit von isolierten offline Backups ist auch verdammt nützlich :)
Kann StoreBackup sowas, kennt jemand ein Programm, mit dem man das erreichen kann, oder muss ich mir da selber was zusammen skripten? :D




find <backupDir> -name "*.flv" -print
Jo, schon klar, dass man die Daten mit "find" findet, nur ist das ja nicht Sinn der Sache :). Das könnte auch ziemlich lange dauern, wenn man Terrabyte weise Daten, bzw. Millionen von Daten gesichert hat.

hjclaes
20.06.13, 20:39
Hallo mh3rm4nn,

falls ich das richtig interpretiere (ich bin mir da wirklich nicht sicher), willst Du folgendes:

Alles wird einfach kopiert und an die Dateien wird ein Timestamp gehängt. Das Ganze natürlich noch mit Kompression und ver-hardlinken bei Umbenennungen.

Ich wüsste kein Programm, was so etwas macht.

Man könnte was an storeBackup dranbasteln, dazu müsstest Du aber genau spezifizieren, was Du eigentlich willst (und ob ich überhaupt richtig liege).

Viel einfacher und sehr schnell zum Suchen wäre auch:

Alle Dateinamen (und anderes) stehen in .md5CheckSum.bz2. Wenn Du die in allen Backups durchsuchst und mehfache herausschmeißt (über die md5 Summe), dann sollte das Suchen auch sehr schnell gehen. Falls Du
doNotCompressMD5File=yes
setzt, wird das noch schneller.
Zum Suchen kannst Du auch storeBackupVersion oder storeBackupSearch verwenden. Wenn ich das richtig sehe, müsste storeBackupSearch das können, was Du zum Suchen brauchst. (Da das nicht so ganz einfach - da extrem flexibel - zu bedienen ist, könntest Du Dir ein Skript drumwickeln.) StoreBackupSearch.pl sucht übrigens auch in .md5CheckSum[.bz2].

. . . das ist das, was mir so spontan einfällt.

Grüße, hjclaes

mh3rm4nn
21.06.13, 18:10
falls ich das richtig interpretiere (ich bin mir da wirklich nicht sicher), willst Du folgendes:

Alles wird einfach kopiert und an die Dateien wird ein Timestamp gehängt. Das Ganze natürlich noch mit Kompression und ver-hardlinken bei Umbenennungen.

Jo, ich denke ist recht knapp zusammengefasst, was ich gerne hätte. Hier nochmal ausführlich:


Bei jedem Backup soll alles in das selbe Zielverzeichnis gespeichert werden. (keine Versionsgeschichte vom gesamten Backup)
Mit Dateien, die identisch zu denen im Backup sind oder Dateien, die im Sourcedir fehlen soll nichts gemacht werden.
Dateien mit dem selben Namen wie Dateien im Backup werden kopiert, aber eine Versionsgeschichte angelegt. Eigentlich recht egal auf welche Art und Weise, hauptsache die unterschiedlichen Versionen sind recht einfach am selben Ort zu finden.
Dateien werden unter Umständen in Blöcke gepackt und/oder komprimiert und/oder mit hardlinks versehen.
Isolierte offline Backups sollten möglich sein.


Der Großteil der Funktionen sind ja in StoreBackup schon drinnen. Nur die Ordnerstruktur des Backups müsste angepasst werden. Also eine Versionsgeschichte für einzelne Dateien statt für's gesamte Backup.

Wäre cool, wenn man das irgendwie als Funktion mit einbauen könnte. :)

hjclaes
21.06.13, 20:09
Also das in storeBackup einzubauen ist keineswegs einfach. (Mindestens) folgendes wäre anders als bisher:

Die Art, wie ins Backup geschrieben wird.
Die Funktionalität von lateLinks und damit von offline Backups und der Replikation
Das Löschen von alten Daten
Die Replikation als Ganzes (wahrscheinlich)
Die Verwaltung der md5 Summen aus dem Backup (sowohl beim Hinzufügen als auch beim Löschen
. . .

Anderes würde sich auch ändern, wären aber nicht so aufwendig, z.B. storeBackupCheckBackup, storeBackupCheckSource, storeBackupSearch, storeBackupls.

Letztendlich wäre es einfacher, ein anderes Tool zu schreiben als diese Funktionalität mit tausend "if's" einzubauen.


Wenn Du ein bisschen skripten kannst, kannst Du aber das, was storeBackup erzeugt abgreifen und (ohne großartigen zusätzlichen Plattenplatz) fast das hinbekommen, was Du willst.
Ich gehe jetzt davon aus, dass Du die externe disk als /disk eingehängt hast. Das von Dir gewünschte Backup steht in /disk/all-files


Du erstellst ein Backup mit lateLinks nach /disk/backup/default/<timestamp>
storeBackup.pl --sourceDir <sourceDirectory> --backupDir /disk/backup --lateLinks
So entsteht ein Backup, das nur Deltas enthält (das geht übrigens auch beim ersten Backup überhaupt).
Das Backup verlinkst Du nach /disk/tmp, d.h. Du erzeugst keine Kopie, sondern nur die Directory-Struktur und verlinkst die Dateien:
linkToDirs.pl --linkWith /disk/backup/default/<timestamp> --targtDir /disk/tmp /disk/backup/default/<timestamp>
Du nimmst den Timestamp vom Backup-Directory und hängst ihn mit einem kleinen Shell-Script (mit Hilfe von find) an jeden Dateinamen in /disk/tmp. Das sollte nicht besonders schwer sein.
Anschließend schiebst Du die Dateien (mit find und mv) von /disk/tmp nach /disk/all-files
(Das könnte man auch mit dem vorherigen Schritt zusammenlegen, ist so aber wahrscheinlich einfacher.)
Du löscht /disk/tmp wieder
Du vervollständigst das Backup von storeBackup:
storeBackupUpdateBackup.pl -b /disk/backup
Du löscht alle alten Backups bis auf das letzte:
storeBackupDel.pl -b /disk1/backup --keepMaxNumber 1 --keepMinNumber 1


Storebackup erledigt damit für Dich das Herausfinden von Dateien mit neuem Inhalt und das Komprimieren. Was nicht klappt, ist Umbenennungen von Dateien auch nach all-files reinzuziehen. Wegen der Deduplikation von storeBackup sind verschobene oder kopierte Dateien (oder veränderte Pfade von Dateien) keine neuen Dateien.

Es wäre hier allerdings eine Überlegung wert, den letzten Schritt - das Löschen - wegzulassen. Du willst ja sowieso alle Dateien behalten. Mit diesem Verfahren hast Du alle Dateien in beiden Bäumen (/disk/backup und /disk/all-files) mit Hard Links verbunden. Das storeBackupDel.pl reduziert den Speicherbedarf also nur unwesentlich.

Grüße, hjclaes

PS: Was spricht eigentlich gegen eine Suche mit storeBackupSearch.pl?
PPS: Falls bei den Optionen oben etwas nicht genau stimmt, musst Du nachsehen. Ich habe das hauptsächlich aus dem Gedächtnis geschrieben.

mh3rm4nn
23.06.13, 11:22
Danke für die ausführliche Antwort. :)
Den Workaround finde ich nicht wirklich toll, genauso wenig wie das Suchen nach den Dateien. Ich hab mich jetzt aber dazu entschieden ein komplett neues Programm in Python zu schreiben. Mal schauen wie's läuft. Ich denke ich werde hier nochmal posten, wenn ich ein einigermaßen lauffähiges Programm hab.

Danke nochmal für die Hilfe :)