Ich habe etwas Webspace und ein paar Datenbanken bei meinem freundlichen Provider gemietet. Alle dort liegenden Daten würde ich gerne regelmäßig und automatisch mit meinem Mac sichern - ein Backup-Tool für meinen Online-Mist wäre toll.
Gibt es aber nicht. Beziehungsweise habe ich keines finden können.
Hier meine Heimwerker-Lösung….
Ach, bevor ich anfange: Ich habe keinen Zugang zu einer Shell auf dem Server, deswegen fielen elegante Lösungen à la ssh aus.
Für die Erstellung eines Arbeitsablaufs kann man, so Apple, den Automator oder Applescript nehmen. Da ich für das Lernen von Applescript zu faul war, entschied ich mich, dem Automator eine Chance zu geben.
Für die Sicherung des Webspaces brauchte ich ein FTP-Programm, das mit dem Automator zusammenarbeitet. Meine Wahl fiel dabei auf Transmit mit seiner praktischen Funktion “Dateien synchronisieren”, mit dem er Dateien vom Server fängt.

Als nächstes wollte ich meine Datenbank(en) fangen, was sich ebenfalls schwierig gestaltete, denn mein Provider lässt keine Remote-Zugriffe auf die Datenbanken zu. Deswegen fielen Tools wie CocoaSQL oder YourSQL aus. Dabei hätte ich doch gerne eine mysqldump-artige Textdatei meiner Daten - also muss PHP helfen.
Ich habe mir folgendes Skript geschrieben, dass den Inhalt einer DB ausgibt. Die müsst ihr auf euren eigenen Server legen, euch einen kreativen Namen ausdenken und mein PHP-Paket anyDB dazulegen und aufpassen, dass die Pfadangaben in den ersten drei Zeilen passen.
Ist dies alles geschehen, kann der nächsten Automator-Schritt diese Datei nutzen. Diesmal ist Safari an der Reihe:

In der URI müssen die drei Parameter “user”, “pwd” und “db” angegeben werden:
http://www.deineurl.de/name.php?user=username&pwd=passwort&db=datenbank
Als nächstes fangen wir den Seiteninhalt (also den mysqldump) und speichern ihn in einer Textdatei. Die zweite Funktion stellt uns TextEdit bereit:

Die Schritte drei und vier einfach für alle zu sichernden Datenbanken wiederholen.
Sind alle Daten zusammen, wäre es ja praktisch, wenn die schön gezippt werden könnten. Das erledigen diese Schritte:

Die Suchparameter (in meinem Schritt 11) müsst ihr an das, was ihr so archivieren wollt, anpassen.
Jetzt ist der Workflow so gut wie fertig und kann als Programm gespeichert werden.
Fehlt nur noch, dass dieser Workflow regelmäßig und automatisch durchgeführt wird. Dabei hilft uns CronniX, eine nette Oberfläche für den cron Befehl. Dort lässt sich ein Zeitpunkt einstellen, mit dem ein bestimmtes Programm ausgeführt werden soll, wie z.B. der Screenshot: Samstags um 18:00 Uhr. Da stellt man sich seine Wunschzeit ein, wählt das Automator-Programm aus und setzt den Haken für das Präfix:

Und fertig ist die Laube.
Was hilfreich ist, wenn man als ersten Schritt eine Bestätigung einfordert, damit die Datensicherung nicht einfach von alleine losgeht:



Herrje, Herr Groetzbach,
… das schaut mir aber eher nach Problemschaffer aus. Vor allem das mit dem Passwort im URL und dem anschließenden Gezippe. Das tut doch nicht Not.
Ich werfe mal ein smartes sprintf(’mysqldump –opt -h%s -u%s -p%s %s | gzip > %s/dumpDB.sql.gz’ [...] in den Raum, um das Problem direkt vor Ort zu erschlagen.
Oder als Script:
http://fx3.org/blog/media/dbbackup.phps
Übrigens nicht auf meinem Mist gewachsen, sondern so (oder so ähnlich) aus dem Supportbereich meines Providers.
Och Herr Schäfers,
deine Zeile ist natürlich sehr smart, aber mein Provider mag dummerweise keine Systemaufrufe - daher der händische dump. Täte er das, wäre dein Aufruf selbstredend eleganter…
P.S. “Diese Kombination zwischen »Duzen« und »Herr Lehmann« ist das Übelste was es gibt!”