Offsite Backup von DS auf WebDAV-Speicher (z.B. von 1und1, GMX, Web.de, Strato, iDisk (MobileMe))

Aus

Anmerkung

Für ein Off-Site Backup der Daten auf der Synology benötigt man Speicherplatz bei einem Anbieter im Internet. Diesen gibt es oft als kostenlose Dreingabe bei den Anbietern von DSL-Zugängen oder Web-Hosting-Angeboten, z.Bsp. bei UnitedInternet (1und1, GMX, Web.de, Strato, MobileMe, ...).

Dabei ist zu beachten dass der Upload der Daten von der Synology (lokal) ins Web durchaus eine ganze Weile dauern kann, denn der Upstream der DSL-Zugänge ist eher mäßig (meist geringer als 1 MBit/sec). Hat man das allerdings einmal geschafft, ist die Aktualisierung der Daten - abhängig von der Datenmenge - eher unkritisch, besonders wenn die Synchronisation/Aktualisierung Nachts geschieht, wie in diesem Beispiel auch beschrieben.

In diesem Artikel wird er Zugang über WebDAV auf diese Dienste beschrieben.Er beruht im Wesentlichen auf den Erkenntnissen dieses Threads.

Eine Alternative zu sitecopy ist duplicity, das unter anderem auch WebDAV unterstützt.

Voraussetzungen

  • WebDAV-Speicher, z.Bsp: 1und1 SmartDrive, GMX Mediacenter, MobileMe iDisk etc.
  • Minimalste Erfahrung mit vi oder einem alternativen Editor auf der Synology.
  • Entweder den Sourcecode von sitecopy von hier (siehe auch Beschreibung unten)
  • und installierte Toolchain (setzt IPKG voraus)
  • oder das fertig compilierte "'binary'" von hier

Abhängig davon ob ihr den source code selbst compiliert oder das Binary verwendet, unterscheidet sich die Installation am Anfang ein wenig.

Installation

ENTWEDER: Download, Kompilieren des Source Codes und Installation

0. Notwendig für SSL: ipkg install openssl openssl-dev

1. Wechsel in ein Verzeichnis, z.B. cd /usr/local/

2. Download der Sources:

wget http://www.manyfish.co.uk/sitecopy/sitecopy-0.16.6.tar.gz

3. Entpacken:

tar xvfz sitecopy-0.16.6.tar.gz

4. Wechsel ins entpackte Verzeichnis:

cd sitecopy-0.16.6

5. Build (die Compilerflags sind nötig damit auch grosse Dateien übertragen werden können):

export CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
./configure --prefix=/opt/ --with-ssl=openssl
make
make install

ODER: Download und Installation der fertigen Binary und Libraries

1. Download und Entpacken der Binary wie hier beschrieben. Im Thread sind Binaries für die Prozessorarchitekturen PowerPC und ARM. Zur Identifikation der richtigen Binary siehe auch hier

In diesem Fall die Binary nach /opt/bin/ kopieren und mit
chmod 755 /opt/bin/sitecopy
ausführbar machen.

2. Installation der Libraries

ipkg install neon
ipkg install expat
ipkg install openssl (nötig falls SSL-Verschlüsselung verwendet werden soll und das Binary entsprechend kompiliert wurde)

Konfiguration

a. Anlegen des Verzeichnisses .sitecopy mit der passenden Berechtigung:

mkdir -m 700 /root/.sitecopy

b. Anlegen und editieren einer Datei .sitecopyrc:

vi /root/.sitecopyrc
Inhalt:
site %yoursite%
	server %yourserver%
	url %serverurl%	 # vollständige url manchmal nötig z.B. https://...
	username %yourname%
	local %lokales_Verzeichnis%
	remote %server_Verzeichnis%
	protocol http
	http secure	 # nur bei Zugang über https
Datei speichern und vi beenden

c. Zugriffsrechte anpassen:

chmod 600 /root/.sitecopyrc

d. Anlegen und editieren einer Datei .netrc:

Diese Datei muss nur erstellt werden, wenn sich das Programm automatisch beim Server anmelden soll.
Wenn nicht, ist bei jedem Aufruf der Benutzername und das Passwort von Hand einzugeben.
vi /root/.netrc
Inhalt:
machine %yourserver%
	login %yourusername%
	password %yourpassword%
Datei speichern und vi beenden

e. Zugriffsrechte anpassen:

chmod 600 .netrc

Konfigurationsbeispiele für gängige Dienste

In den folgenden Beispielen wird das Verzeichnis /volume1/shared/Backups der Synology in das Verzeichnis /Backups des WebDAV-Dienstes gespiegelt werden solle. Die Werte in Prozentzeichen %...% sind durch geeignete Werte (Benutzername, E-Mail-Adresse) zu ersetzen.

Apple MobileMe / iDisk

 site iDisk_Backups
	server idisk.me.com
	username %dein_mobileme_benutzername%
	protocol http
	http expect
	tempupload
	local  /volume1/shared/Backups
	remote /%dein_mobileme_benutzername%/Backups
	exclude @eaDir
	exclude /%ein_verzeichnis_das_nicht_gesichert_werden_soll%
	exclude /%noch_ein_unwichtiges_verzeichnis%
	...

Alice SmartDisk

 site Alice
	server dav.disk.alice.de
	ulr https://dav.disk.alice.de
	username %deine_der_smartdisk_zugeordnete_mailadresse@alice-dsl.net%
	local /volume1/shared/Backups
	remote /Backups
	protocol http
	http secure
	tempupload
	exclude @eaDir
	exclude /%ein_verzeichnis_das_nicht_gesichert_werden_soll%
	exclude /%noch_ein_unwichtiges_verzeichnis%

GMX MedienCenter

 site GMX
	server mediacenter.gmx.net
	username %deine_gmx_mailadresse@gmx.de%
	local /volume1/shared/Backups
	remote /Backups
	protocol http
	tempupload
	exclude @eaDir
	exclude /%ein_verzeichnis_das_nicht_gesichert_werden_soll%
	exclude /%noch_ein_unwichtiges_verzeichnis%

WEB.DE SmartDrive

 site WEB.DE
	server webdav.smartdrive.web.de
	local /volume1/shared/Backups
	remote /Backups
	protocol http
	tempupload
	exclude @eaDir
	exclude /%ein_verzeichnis_das_nicht_gesichert_werden_soll%
	exclude /%noch_ein_unwichtiges_verzeichnis%

Verwendung

Siehe hierzu auch die ausführliche man-page hier

Beispiele:

  • sitecopy -i %yoursite% Initialisierung der Seite. Alle Dateien werden bereit zum Update markiert
  • sitecopy -u %yoursite% Update der Dateien auf dem Server (Achtung: Alle veränderten Dateien werden überschrieben!)
  • sitecopy -s %yoursite% Update der Dateien auf lokal (Achtung: Alle veränderten Dateien werden Überschrieben!)

Zeitgesteuerte Backups per cron

Hierdurch wird das Backup zeitgesteuert automatisch ausgeführt, so dass man sich nicht selber darum kümmern muss.

Voraussetzung

oder

  • Installiertes CronJobs als 3rd-Party-App von Itari
    • Bitte beachten: Vorher ist die Installation von "init_3rdparty" notwendig. Zu finden auch hier.

Beispiel für einen Eintrag in der crontab

a. Editieren der Datei /etc/crontab:

vi /etc/crontab
Eine weitere Zeile anfügen:
0	4	*	*	0	root	/usr/local/bin/sitecopy -u %yoursite%	#Do Backup
Datei speichern und vi beenden

Erklärung: Um .. 0 Minuten .. 4 Stunden .. beliebiger Tag im Monat .. beliebiger Monat .. am Tag 0 der Woche .. führe im Namen des Benutzers root den Befehl /usr/local/bin/sitecopy -u %yoursite% aus. #Do Backup ist nur ein Kommentar.

In anderen Worten: Jeden Sonntag (der Tag 0 der Woche) um 04:00 Uhr (Nachts) eine Aktualisierung durchführen.

"/usr/local/bin/" lautet bei der Verwendung der Binaries "/opt/bin/"


Wenn man ein Log für das Backup haben möchte, kann man die Ausgabe in eine Datei umleiten. Dafür den Befehl wie folgt ergänzen:

/usr/local/bin/sitecopy -u %yoursite% > %datei%

wobei %datei% eine Datei mit vollständigem Pfad ist. Achtung: Die Datei wird mit jeder Ausführung überschrieben.

Um Logs von mehreren Tagen zu behalten, kann man den Dateinamen mit Hilfe der date-Variable ergänzen. Das folgende Beispiel legt täglich eine extra Logdatei namens "GMX-%aktuelles Datum%.txt" an:

/usr/local/bin/sitecopy -u %yoursite% > /volume1/logs/GMX-`date +\%Y-\%m-\%d`.txt

Verschlüsselung

Durch Angabe von "http secure" in der .sitecopyrc wird sichergestellt, dass eine Verschlüsselung der Übertragungsstrecke stattfindet. Damit ist NICHT sichergestellt, dass die Dateien auf dem Online-Storage verschlüsselt sind. Das ist von Anbieter zu Anbieter verschieden, wobei die Dateien in der Regel unverschüsselt dort liegen (ob man das möchte bleibt jedem selbst überlassen). Eine Möglichkeit die Dateien verschlüsselt abzulegen ist, direkt einen verschlüsselten Ordner(sofern aktiviert) der DS hochzuladen (die verschlüsselten Versionen der Ordner befinden sich unter /volume1/@ordnername@ und enthalten Dateien der Form ECRYPT...). Weder Inhalt noch Originalname sind somit erkennbar.

Links