MYSQLDumper ist ein hervorragendes Tool, wenn es darum geht eine oder mehrere MySQL-Datenbanken täglich zu sichern. Ein CRON-Skript zur Automatisierung der Datensicherung gehört zwar zum Lieferumfang von MySQLDumper, doch das Vorhaben scheitert oft an den Einschränkungen der Webspace-Provider oder der Konfiguration des Webservers.
Die folgende Lösung zeigt, wie man MySQLDumper von einem Desktop-Rechner aus mit Bordmitteln automatisieren kann, sowohl unter macOS, als auch unter Windows.
MySQLDumper per Browser automatisieren
MySQLDumper schützt sein Verzeichnis vorbildlich über ein HTAccess-Passwort. Das allerdings ist ein Problem, wenn man das PHP-Script zur Datensicherung über den Browser automatisieren möchte. Entweder muss man das Passwort im Browser speichern oder der Vorgang bleibt unweigerlich beim Login-Screen hängen.
Username und Passwort für die HTTP Authentication lassen sich auch mit der URL übermitteln – ideal für Automatisierungsaufgaben. Man verwendet dazu folgendes Format:
1 |
http://username:passwort@domain.de/dumper/dump.php?config=profilename |
Die o.g. URL setzt sich aus folgenden Teilen zusammen:
- http:// oder https:// als Protokollbezeicher
- Username und Passwort durch Doppelpunkt getrennt
- Nach dem @ folgt dann die normale URL zum Aufruf des PHP-Backup-Skripts:
domain.de/dumper/dump.php - Nach dem Fragezeichen folgt ein Parameter mit dem Namen des Backup-Profils aus MySQLDumper: config=profilename
Nach Aufruf der URL startet MySQLDumper direkt mit der Datensicherung.
Da wir bei dieser Art der Browser-Automatisierung keine Rückmeldung vom Browser erhalten, muss eine entsprechende Warteschleife eingebaut werden und zwar so lange, wie der Vorgang ungefähr dauert. Danach sollte der Browser automatisch beendet werden.
macOS: MySQLDumper per Skript fernsteuern
Zusammengefasst sieht die Lösung unter macOS und Safari wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/bash # Make sure all tabs are closed # open -a Safari osascript -e "tell application \"Safari\" to close every window" # Run backup job, wait 120 seconds and close Safari # open -a Safari http://username:password@domain.de/dumper/dump.php?config=profilename sleep 120 osascript -e "tell application \"Safari\" to close every window" # More backup jobs here ... # |
Damit Safari Authentifizierungs-Daten in einer URL akzeptiert, muss zuvor die folgende Option ausgeschaltet werden:
Windows: MySQLDumper automatisieren
Die Lösung für Windows basiert auf Google Chrome und funktioniert nach dem gleichen Prinzip:
1 2 3 4 5 6 7 8 |
REM Run backup job REM start chrome.exe http://username:password@domain.de/dumper/dump.php?config=profilename sleep 120 taskkill /IM chrome.exe >nul REM More backup jobs here ... REM |
Da MySQLDumper die Datenbanken auf dem Webserver selbst sichert, sollten diese anschliessend am besten mit allen Dateien der Website zusammen lokal heruntergeladen werden. Hierzu bietet sich z.B. eine Lösung basierend auf LFTP an (der Artikel beschreibt die Synchronisation von Server zu Server. Der Vorgang ist jedoch der Gleiche zwischen Server und Client).
MySQLDumper: Backup wiederherstellen und das Umlaute-Problem
An dieser Stelle noch ein Tipp, falls eine Datensicherung ohne MySQLDumper wiederhergestellt werden muss:
Normalerweise entpackt man das Backup-Archiv und liest es z.B. über PHPMyAdmin wieder ein. Oft sind dann aber Umlaute und andere Sonderzeichen “zerschossen”. Der Grund dafür: MySQLDumper kodiert die Datensicherung in “Latin-1”. Datenbankserver liefern jedoch die Daten meist in “UTF-8”.
Abhilfe schafft hier iconv. Es ist auf jedem Mac vorinstalliert und kann unter Windows z.B. über Cygwin, die Ubuntu-Shell unter Windows 10 oder den unten stehenden Link nachinstalliert werden.
Der folgende Befehl wandelt eine Datensicherung von MySQLDumper entsprechend um. Die korrigierte Datei wird unter out.sql gespeichert:
1 |
iconv -f ISO-8859-1 -t UTF-8 name_der_backup_datei.sql > out.sql |
Mehr zu MySQLDumper findet ihr hier
Iconv Binary für Windows installieren