Re: Backup über Internet

From: Till Toenges <tt(at)kyon.de>
Date: Mon, 12 Mar 2012 09:33:19 +0100

On 2012-03-07 08:51, Till Toenges wrote:
> Nach allen Inputs habe ich angefangen meine eigene Lösung für all diese
> Punkte umzusetzen. Ich hoffe mal, so etwa am Wochenende eine halbwegs
> brauchbare Testversion hinzukriegen. Dann melde ich mich wieder dazu,
> vielleicht hat ja der eine oder andere noch Interesse daran.

Hier mal der Zwischenstand, die kurze Fassung: Ich habe ein Shell-Script
gebaut, dass die gewünschten Inhalte mit find zusammensucht, dann mit
stat Infos dazu sucht und diese Datei-Liste mit der letzten Liste
abgleicht, um Änderungen festzustellen. Die Dateien werden einzeln mit
cpio gepackt, und anschließend mit bzip komprimiert und mit openssl
verschlüsselt; jede Archiv-Datei hat einen zufälligen Namen und wird in
einem von 256 zufälligen Unterverzeichnissen abgelegt. Diese Infos und
ein Hash jedes Archivs bleiben im Index erhalten, der ebenfalls
komprimiert & verschlüsselt übertragen wird. Übertragen wird mit sftp.
Es kommt also alles mit dem Basissystem von FreeBSD aus, und erfüllt im
wesentlichen meine Anforderungen. Hardlinks werden nicht so toll
behandelt, dafür gibt es nur eine Liste und die Datei wird trotzdem
mehrfach verpackt, vielleicht mache ich da noch was dran.

Verifizieren kann ich anhand der Hashes der Archive und der Hashes der
Originale. Um verschiedene Versionen zu erhalten, werden bei jedem
Backup die Archive der unveränderten Dateien auf dem Server als Links
übernommen, wie man es beispielsweise von cpdup oder rsync kennt.

Ich muss da mal ein bisschen aufräumen, dann kann ich das bei Interesse
zur Verfügung stellen. Die Performance ist als Shell-Script bestenfalls
mäßig, aber das kann mir nachts um 1 Uhr auch egal sein :-)

Noch ein paar Fragen:

Ich habe verschiedene Archivierungsmethoden ausprobiert, um Dateien mit
möglichst vielen Informationen zu erhalten, genauso wie Devices,
symbolische Links, Verzeichnisse und so weiter. Ich habe nur ein Format
gefunden, dass geeignet war und auch bei großen Dateien über 8 GB noch
funktioniert, das ist cpio -H pax. Das Programm pax selbst konnte ich
nicht dazu bewegen, Dateien über 8 GB anzunehmen. Habe ich da was
übersehen, oder ist das halt so?

Die Dateinamen haben mir ein paar Probleme gemacht. find kennt -print0,
aber das kriege ich nicht in eine while read Schleife der Shell. Ich
brauche die Namen für den Index sowieso später mit vis überarbeitet,
aber erstmal musste ich die einzeln bekommen, und habe als
Newline-und-alle-sonstigen-Sonderzeichen-kompatibles-Konstrukt nur
folgendes machen können:

find BLAHBLAH -print0 | xargs -0 -n 1 -s 65536 sh -c 'echo -n "$0" | vis
-w ; echo' | while read -r FILE ; do ....

Das $0 an dieser Stelle so funktioniert, habe ich einfach durch
ausprobieren herausgefunden. Ganz geheuer ist mir das nicht. Gibt's da
echt nichts eleganteres, was auch bei verrückten Dateinamen noch
funktioniert?

Till

-- 
Kyon, Till Toenges, tt@kyon.de, http://kyon.de
Obergplatz 14, 47804 Krefeld, +49-2151-3620334
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 12 Mar 2012 - 09:33:25 CET

search this site