Einfaches Backup- und Restore-Tool

Zum Testen von Projekten während der Entwicklung unseres CMS Zeta Producer habe ich oft folgenden Use Case:

  1. Beispielprojekt lokal auf meinen PC kopieren.
  2. Destruktives Testen auf das kopierte Beispielprojekt.
  3. Den lokalen Ordner wieder löschen (nach den Tests).
  4. Wieder bei Schritt 1 anfangen.

Um mir die Schritte 3 und 4 zu ersparen, habe ich mir ein kleines Tool geschrieben:

Simple Backup

Damit könnt Ihr ganz einfach via Windows Explorer auf einen Ordner rechts klicken und dann „Backup“ auswählen und später wieder „Restore„.

Simple Backup

Das Programm besteht aus einer einzigen Programmdatei (sb.exe), die sowohl Installation, die Programmlogik und auch die Deinstallation beinhaltet.

Hier direkt die EXE-Datei downloaden

Den Quelltext gibt’s bei GitHub, könnt Ihr Euch auch downloaden.

Das neue SkyDrive ohne Anmeldung laufen lassen

Da ist das neue SkyDrive von Microsoft nutzen möchte um automatisiert einen Ordner auf einem Webserver zu sichern, habe ich ein bisschen recherchiert, wie das geht.

Was möchte ich wie sichern?

Ich verwende folgende Sicherungskette:

  1. Dateien, Datenbanken und Windows-Systemdateien werden über geplante Aufgaben („Scheduled Tasks“) regelmäßig auf einen zentralen Ordner gespeichert (z.B. „D:\Backups\Data“).
  2. Die Skripte zum Backup erstellen liegen auch unterhalb des Backup-Ordners (z.B. „D:\Backups\Config“).
  3. Eine weitere geplante Aufgabe kopiert diese Dateien und Ordner komplett in einen Pickup-Ordner, z.B. „C:\Backup-Pickup-Fuer-SkyDrive“. Der Zielordner wird zunächst komplett geleert, also alle Dateien und Unterordner werden gelöscht.
  4. SkyDrive wird so konfiguriert, dass es diesen Pickup-Ordner überwacht und die Dateien hinaus schaufelt. Diese Konfigurationsschritte beschreibe ich nachfolgend.

Wie kann ich SkyDrive dafür nutzen?

Standardmäßig wird SkyDrive für den aktuell angemeldeten Benutzer installiert und bei seiner Anmeldung gestartet. Es ist also beim Abmelden wieder beendet. Das ist so nicht für eine automatische Synchronisierung zu gebrauchen. Es gibt einen Artikel von Mitte 2011, der beschreibt, wie mit Windows Live Mesh (dem Vorgänger von SkyDrive) eine automatische Synchronisierung möglich ist.

Aufbauend auf dieser Idee konnte ich dann eine Lösung einrichten:

  1. Als der Benutzer auf dem Server anmelden, unter dessen Konto später SkyDrive automatisch laufen soll. Nennen wir ihn mal „backupuser“. Der Benutzer sollte Administrator-Rechte besitzen.
  2. SkyDrive downloaden und installieren.
  3. Den von SkyDrive überwachten Ordner entsprechend beibehalten („c:\users\backupuser\skydrive“) oder auf einen eigenen Ordner umbiegen (z.B. „d:\backup-external“).
  4. Mit dem gewünschten Windows-Live-Konto in SkyDrive anmelden (ich habe ein neues Konto erstellt).
  5. Nun einen geplanten Task einrichten im „Windows-Aufgabenplaner“ oder „Windows Task Scheduler“, wie es auf englisch heißt:
  1. Startart auf „At Startup“ einstellen, also beim Systemstart.
  2. So konfigurieren, dass auch ohne Anmeldung und mit höchsten Privilegien läuft.
  3. Die Option deaktivieren, die angibt, dass der Task nach einer gewissen Zeit (3 Tage) beendet wird. Der Task soll immer laufen.
  4. Als Programmpfad in unserem Beispiel „C:\Users\backupuser\AppData\Local\Microsoft\SkyDrive\SkyDrive.exe“ hinterlegen.
  5. Als Befehlszeilenargument „/background“ hinterlegen.
  6. Den geplanten Task unter dem alternativen Konto „backupuser“ laufen lassen.
  7. Beim Verlassen des Dialogs für den neuen Task durch „OK“ muss einmalig der Kennwort des „backupuser“-Kontos hinterlegt werden.
  • Zur Sicherheit von Windows nun den „backupuser“ abmelden und mit einem alternativen Administrator-Konto anmelden.
  • Nun noch den Task einmalig im Task Scheduler rechtsklicken und starten. Ihr solltet im Task-Manager jetzt „SkyDrive.exe“ sehen, laufend unter dem „backupuser“-Konto.
  • Zur Kontrolle einfach einen neue Textdatei mit Inhalt in den SkyDrive-überwachten Ordner ablegen. Anschließend bei SkyDrive von einem anderen Rechner aus im Browser anmelden über skydrive.live.com und schauen, ob die Datei angekommen ist.

Jetzt sollte alles konfiguriert sein. Wenn Ihr mehr als die 7 GB Speicher benötigt, könnt Ihr für gerade mal 8 Euro im Jahr weitere 20 GB kaufen (und auch noch mehr).

Was sollte ich regelmäßig machen?

Ich empfehle, regelmäßig über die Weboberfläche zu kontrollieren, ob:

  • die Dateien aktuell sind
  • die Dateien vollständig sind
  • die Dateien inhaltlich korrekt sind

Zudem könnt Ihr die Protokolldateien von SkyDrive auf dem Server anschauen, diese liegen im „logs“-Ordner unterhalb der SkyDrive-Installation („C:\Users\backupuser\AppData\Local\Microsoft\SkyDrive\logs“ im Beispiel).

Verschlässeltes Online-Backup

Kurzer Hinweis an mich selbst: CrashPlan ist ein Online-Backup-Dienst, der die Daten bereits lokal verschlüsselt und erst danach überträgt.

Ob der Client in der Praxis funktioniert, habe ich noch nicht ausprobiert, die Preise (3 USD pro Monat für unbegrenzten Speicherplatz, also 36 USD im Jahr) finde ich ziemlich günstig.

Datenbanken zwischen 2 Oracle Express Editionen kopieren

Bei Microsoft SQL Server (Express) geht es ja relativ einfach, Datenbanken zwischen 2 Datenbank-Servern zu verschieben. Z.B.:

  1. Backup erstellen auf Server 1 und später auf Server 2 wiederherstellen. -oder-
  2. Datenbank auf Server 1 detachen (trennen), Dateien auf Server 2 kopieren und später auf Server 2 wieder attachen (anhängen).

Bei Oracle XE ist das auch möglich, allerdings ein bisschen aufwändiger und via Befehlszeile.

Rosenzuechter-sei-Dank weiß ich jetzt, wie das geht:

Exporting and Importing Data

Da ist es sehr ausführlich und Schritt-für-Schritt beschrieben.

Ankommende Suchanfragen:

  • oracle datenbank auf anderen server