Manuelles Backup erstellen bei Shopware 5 und Shopware 6

Warum manuell ein Backups erstellen?

Die Frage ist nicht unberechtigt, denn als Shop Betreiber geht man in der Regel davon aus, dass der Hoster bzw. Provider sich um Backups kümmert und einem die Arbeit also vermeintlich abgenommen wird. Leider bietet nicht jeder Hoster ein Backup an.

Jetzt kann es passieren, dass man einen Befehl ausführt, wodurch ein überflüssiger Teil Daten gelöscht werden soll. Versehentlich wird aber mehr (oder gar alles) gelöscht und der Shop funktioniert nicht mehr richtig. Oder aber der Hoster wird einer Hacker Attacke ausgesetzt. Jetzt meldet man sich beim Hoster und möchte auf sein Backup zugreifen, stellt aber fest, dass man nicht der einzige ist und warten muss. Das Kostet Zeit und Geld. Von Haus aus ist es nicht möglich, in Shopware 5 oder 6 zu erstellen.

Wer einmal eine Datenpanne hatte, vergisst nie wieder ein Backup zu erstellen

Letzten Endes vermisst man Backups immer am meisten, wenn man sie gerade dringend benötigt. Backups müssen gepflegt und kontrolliert werden – und vor allem: Sich auf nur eine Sicherung zu verlassen ist ein Fehler! Als grobe Richtlinie kann man sagen, es sollte drei Kopien geben. Das Original, ein Backup und ein zusätzliches abgeschirmtes Backup. Sich beispielsweise nur auf eine Kopie auf einer USB-Festplatte zu verlassen, ist auch nicht unbedingt empfehlenswert.

Manuelles Backup – Schritt für Schritt

Anmelden via SSH

Hinweis vorab: Der Anmeldevorgang kann je nach Hoster unterschiedlich ausfallen. Auch das Thema Cronjob weiter unten kann abweichen. Sollte man Schwierigkeiten haben sollte man sich nicht scheuen zu googlen oder seinen Hoster zu kontaktieren.

Zunächst braucht man eine SSH Verbindung zum Server seines Anbieters. Mac Nutzer können auf das vorinstallierte Terminal zugreifen, Windows Nutzer können eine entsprechende Software herunterladen, wie beispielsweise Putty.

Meistens findet man auf der Webpage des Hosters Informationen zum “SSH Zugang”, wenn man sich dort einloggt.

So ein Login kann dann in der Konsole etwas so aussehen:

ssh benutzer@example-server.com

Shopware Ordner und Navigation

Meistens befindet sich die Shopware Installation im Pfad /var/www/shopname

Zum www Ordner navigiert man über cd /var/www/ den Inhalt des Ordners sieht man mittels ls

Jetzt gilt es zwei Dinge zu sichern: Die Datenbank und den Shop selbst.

Datenbank sichern

Zunächst sollte man einen Ordner anlegen, der später alle Backup Dateien enthalten wird

mkdir backups

Eine Sicherungsdatei der Datenbank wird auf dem Server abgelegt über:``

sudo mysqldump -uroot -p datenbankname > backups/dbbackup.sql

Für diesen Befehl sollte allerdings auch das Password für die Datenbank zur Hand sein. ‘datenbankname’ wird durch den Namen der Datenbank ersetzt (wie zu erwarten), bei ‘dbbackup.sql’ kann ein eigener Name verwendet werden. Grundsätzlich ist aus Übersichtsgründen zu empfehlen, das aktuelle Datum in den Dateinamen zu schreiben.

Die Wiederherstellung der Datenbank aus der Datei geschieht mittels:

(Nur ausführen, wenn man das Backup benötigt)

mysql -uroot -p < backups/dbbackup.sql

*Wir gehen hier davon aus, dass wir uns im www Ordner befinden, in dem wir den Ordner Backups angelegt haben.

Shop sichern

Um eine Sicherungsdatei auf dem Server abzulegen nutzen wir den tar Befehl:

tar (Tape ARchiver) ist ein Linux-Befehl mit dem man seine Daten und Verzeichnisse sichern kann. Er komprimiert auf Wunsch mit Hilfe von gzip oder bzip2.

(Als Erinnerung: Mit ls überprüfen wir den Inhalt eines Ordners – Unser Shopware Shop sollte im www Ordner liegen)

tar -cvzf backups/backup_datum.tar.gz shopOrdner/

Um aus der Backup Datei die Rücksicherung zu gewinnen nutzt man den Befehl :

(Nur ausführen, wenn man das Backup benötigt)

tar -xvzf backups/backup_date.tar.gz

*Vorher sollte der original Ordner aber besser verschoben oder umbenannt werden.

Übertragung der Backups auf den Computer

Möchten wir jetzt eine Backup Kopie auf unseren Lokalen Rechner ziehen, können wir das mit rsync ganz gut bewerkstelligen:

Wir ergänzen jetzt noch eine Option für den Befehl um Cache- und Mediendateien auszuschließen:

(Wir befinden uns immer noch im www Ordner)

rsync --exlude='shopOrdner/var/cache/production_*' --exclude='shopOrdner/media' -av benutzer@example.com:/var/www/shopOrdner /lokalerPfad

Alternativ kann mittels FTP Client die jeweilige Datei heruntergeladen werden.

Wiederherstellung

Sollte der Fall nötig werden, stellst du über diese Befehle (und bitte nur dann!) die Daten wieder her:

Logge dich per SSH ein und wechsle in den Ordner /var/www. Hier führst du für die Datenbankwiederherstellung den Befehl mysql -uroot -p < backups/dbbackup.sql aus. Um die Dateien wiederherzustellen, führst du den Befehl tar -xvzf backups/backup_datum.tar.gz aus.

Beachte, dass hier jeweils alle alten Daten ohne Rückfrage überschrieben werden.

Backup mittels Plugin

Wer es sich etwas einfach machen möchte, kann auch mit einem Plugin Backups erstellen. Dafür gibt es verschiedene Anbieter. Suchergebnis für backup | Shopware Community Store