+41 71 350 14 50

Zu Bürozeiten erreichbar

GesundUndGut.CH

Ihr Premium Shop

WordPress Backup automatisiert mit Synology erstellen

Synology automatisiert Backup erstellen von Wordpress

Aktualisiert am 12.04.2022

Das war jetzt mal ein Brand, den ich für mich selbst gelöscht habe. Ich suchte nach einer Möglichkeit meine Backuproutine zu vereinfachen und effizienter zu gestalten.

Da ich einen SSH Zugriff auf mein Hosting habe, sollte das ja wohl kein Problem sein. Aber wie bewerkstelligen? Erst einmal Synology anfragen. Die haben mir geschrieben, dass ich es über eine Aufgabe im Aufgabenplaner erledigen soll.

Sie haben mir auch gleich ein Script geschickt, womit es funktionieren soll. Allerdings waren hier Theorie und Praxis weit auseinander.

Hier nun die Beschreibung, wie man ein Backupprozess auf der Synology anlegt für die Datenbank und WordPress

Eigenen Benutzernamen auf der Synology erstellen

Damit der Backupprozess nur unter diesem einen Benutzer ausgeführt werden kann, einen neuen Benutzer erstellen. Dazu ein sehr gutes Passwort wählen mit (empfohlen) 20-30 Zeichen

Optional kann auch ein anderer Ordner angelegt werden. Standardmässig wird ins Benutzerverzeichnis heruntergeladen werden. Dazu aber später mehr. Wichtig ist nur, dass dort die entsprechenden rechte an den Benutzer vergeben werden.

Über SSH Key erstellen

Mit dem entsprechend neu angelegten Benutzer nun den Key über SSH erstellen. Dazu einloggen (zum Beispiel über Putty) auf die Synology mit diesem Benutzer und folgende Befehle ausführen:

Key erstellen:
ssh-keygen -t rsa

Key auslesen:
cat .ssh/id_rsa.pub

SSH Key an Hoster

Übergib den Key nun dem Hoster oder trage es selbst in deinem SSH Benutzer ein. Detaillierte Anleitungen dazu gibt dir sicher dein Hoster.

Dateiberechtigung auf 600 setzen & Besitzer des Ordners wechseln

Auf der Synology den Besitzer des Ordners .ssh und deren Unterordnder mit rechtsklick – Eigenschaften zu admin wechseln. Sonst hat der aktuelle Benutzer die Möglichkeit die Dateien zu ändern und das quittiert der SSH Server mit der Verweigerung des automatisch hinterlegten Passworts und somit funktioniert das nachstehende Script nicht.

Setze nun mit folgendem Befehl die Dateiberechtigung auf 600:
find .ssh/id_rsa.pub -type f -exec chmod 600 {} \;

Auf den Server einloggen nachdem das Zertifikat installiert ist

Du befindest dich noch auf der Synology mit deinem Benutzer. Ist das Zertifikat bereits eingebunden, kannst du nun fortfahren. Ansonsten musst du warten, bis es eingebunden ist und danach loggst Du dich zuerst wieder mit dem Benutzer auf die Synology ein.

Fahre nun fort, indem du dich mit dem SSH Benutzer des Servers auf dem Server einloggst:
ssh BENUTZER@SERVERNAME

Nun wirst Du wahrscheinlich einige Meldungen erhalten. Die kannst Du mit yes bestätigen. Tippe nach Abschluss exit ein und logge dich erneut auf den Server ein. Nun sollte es so sein, dass Du kein Passwort mehr benötigst, Erst JETZT kann das Script über die Synology funktionieren.

Script über Aufgabenplaner hinzufügen

Zuerst den MySQLdump ausführen

#!/bin/bash
ssh BENUTZER@SERVERNAME <<EOF
mysqldump -h DATENBANKSERVER -u DBUSER -pPASSWORD DBNAME > VERZEICHNIS/VERZEICHNIS/DATENBANK_NAME_BACKUP.sql
bye
EOF

Besonderheit bei Sonderzeichen im Passwort der MySQL Datenbank

Statt -pPASSWORT setzt Du nun folgenden Zeichensatz: -p'PASSWORDmitSonderzeichen' Wichtig sind hierbei die 'Hochkommas'. Der Rest des Codes kann gleich bleiben.

Es empfehlt sich sicherheitstechnisch sehr, die Datenbank nicht in den Ordner zu sichern, in dem die WP-Installation liegt. Du könntest auf de, Server ein eigenes Verzeichnis im Rootverzeichnis anlegen und die Datei dort speichern. Danach musst Du Dir einfach den Speicherort merken, damit du die Datei über das nächste Script Herunterladen kannst.

Bei täglichen Backups bitte als Erstes die Dateien löschen mit folgendem Befehl

rm -rf VERZEICHNIS/VERZEICHNIS/DATENBANK_NAME_BACKUP.sql

Download für die Datenbankdatei und den kompletten WP Ordner

#!/bin/bash
sftp BENUTZER@SERVERNAME <<EOF
get verzeichnis/verzeichnis/DATENBANK_NAME_BACKUP.sql
mget -r INSTALLATIONSVERZEICHNIS/WORDPESS/
bye
EOF

Nun wird im Hintergrund der Downloadprozess gestartet. Um zu testen, ob es funktioniert, nimmst Du einfach die einzelnen Zeilen und loggst Dich per SSH auf den Server ein. Allerdings zuerst auf der Synology, wenn du die Dateien in Deinem Synology Ordner drin haben willst.

Willst Du bei täglichen Backups vorher ein Zip-File auf dem Server generieren?

#!/bin/bash

ssh BENUTZER@SERVERNAME <<EOF
zip -r VERZEICHNIS/VERZEICHNIS/ZIP/filename.zip /VERZEICHNIS/VERZEICHNIS/www/WORDPRESS (anschliessend auf der gleichen Linie das Verzeichnis angeben)

Auch hier bei täglichen Backups erst die Datei löschen auf dem Server, bevor sie erstellt wird:
rm -rf VERZEICHNIS/VERZEICHNIS/ZIP/filename.zip

Verzeichnis mit Datum auf der Synology anlegen (optional aber emfpehlenswert)

Du kannst auch noch ein Verzeichnis auf der Synology mit dem Datum Anlegen, dort wo du die Installation heruntergeladen haben möchtest:
Dazu ergänzt Du das Script wie folgt:

#!/bin/bash
cd /volume1/VERZEICHNIS/VERZEICHNIS/
folder=$(date +%Y%m%d)
mkdir $folder
cd $folder

Danach kannst Du das, was oben beschrieben wurde ebenfalls noch unten anhängen und dein Backup wird nun in den entsprechenden Ordner abgelegt.
Die MySQL Datenbank solltest Du 1 Minute vor dem Prozess mit der kompletten Installation starten, damit diese auch wirklich im Verzeichnis liegt.

Script testen

Bevor Du nun alles der Routine überlässt, mach auf jeden Fall ein zwei Tests. Du kannst am aktuellen Tag den Test manuell, per Rechtsklick auf den Prozess, starten. Danach lässt du ein zwei Tage das Script laufen und testest, ob es auch wirklich korrekt funktioniert.
Viel Spass beim Umsetzen.

Hast Du eine Herausforderung im Bereich Social Media oder Online Marketing ? Dann drück jetzt den Brandruf und melde Dich bei mir! Gemeinsam meistern wir sie.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert