Änderungsstand: 2021-06-02
Hier die kompletten Backup-Befehle & anschließend die Restore-Befehle in jeweils einem Script niedergeschrieben. Ich verwende hierbei normale tar-Befehle.
Diese Befehle sind diesmal recht einfach gehalten. Unmittelbar vor dem Backup werden alle Docker, der Scripte, die unter /home/dockervolumes liegen, gestoppt und nach dem Backup wieder gestartet. Das Backup am Zielort wird hier immer wieder überschrieben. Wer es kompliziert möchte, mit einzelnen Dateien bei jedem Backup, sollte sich das Script in meinem Nextcloud-Backup-Guide anschauen und anpassen. Ich kann momentan keine Scripte mehr sehen… Vielleicht später einmal…
Die Scripte sind für ARM & X64 gleichermaßen geeignet. Aber nur, wenn man beim Restore die Architektur des Backups beachtet. Leider funktioniert der MariaDB-Docker nur auf x64 und ARM64. Bei Raspi’s kann man zwar teilweise auf ARMv8 umstellen aber MariaDB wird dort trotzdem nicht funktionieren.
Für Docker mariadb, coreymbryant/mariadb-armv7, Docker nextcloud und Docker ghcr.io/linuxserver/nextcloud geeignet.
Wer kein „sudo“ verwendet, muss alle sudo im Script entfernen. Ansonsten sudo mit apt install sudo nachinstallieren und einem Benutzer sudo-Rechte vergeben.
Backup:
Login im Terminal als root (Raspi-User setzen hier ein sudo su nach dem Login)
Zuerst erstelle ich das Verzeichnis, wohin die Backups geschrieben werden sollen (eigene Werte und NICHT das /var/lib-Verzeichnis verwenden):
Die folgenden 3 Befehle sollten so übernommen werden:
touch /home/wpbackuplog.txt && echo // Updates mit "wpcomposebackupscript" | sudo tee -a /home/wpbackuplog.txt
cd && sudo mkdir -p scriptfiles
cd && cd scriptfiles && sudo nano wpcomposebackupscript.sh
Folgendes eintragen (eigene Werte verwenden). Mein Backup-Verzeichnis ist in diesem Beispiel mnt/backup-wp
#!/bin/bash
# ~/scriptfiles/wpcomposebackupscript.sh
# @knilix | https://knilixword.wordpress.com
clear
set -e
############################################################################################
echo " Alle Docker der Scripte unter /home/dockervolumes werden gestoppt"
############################################################################################
cd /home/dockervolumes
readarray -d '' composeConfigs < <(find . -type f -name docker-compose.y* -print0)
for cfg in "${composeConfigs[@]}"; do
sudo docker-compose -f "$cfg" stop
done
############################################################################################
echo " Backup-Verzeichnis & Unterverzeichnisse werden erstellt, wenn nicht vorhanden"
############################################################################################
sudo mkdir -p /mnt/backup-wp/Compose-Scripte && mkdir -p /mnt/backup-wp/WP && mkdir -p /mnt/backup-wp/NPM > /dev/null
############################################################################################
echo " Script(e) werden kopiert"
############################################################################################
sudo cp -r /home/dockervolumes/* /mnt/backup-wp/Compose-Scripte > /dev/null
############################################################################################
echo " WordPress-Config-Verzeichnis wird gesichert"
############################################################################################
sudo tar -vcpzf /mnt/backup-wp/WP/Wordpress.tar.gz -C /var/lib/Wordpress . > /dev/null
############################################################################################
echo " WP-Datenbankverzeichnis wird gesichert"
############################################################################################
sudo tar -vcpzf /mnt/backup-wp/WP/WordpressDB.tar.gz -C /var/lib/WordpressDB . > /dev/null
############################################################################################
### Folgende 4 Befehle nur, wenn "NPM" auf dem Host verwendet wird. Ansonsten mit # unter Kommentar setzen!
############################################################################################
echo " NPM-Config-Verzeichnisse werden gesichert"
sudo tar -vcpzf /mnt/backup-wp/NPM/NPM-Manager.tar.gz -C /var/lib/NPM-Manager . > /dev/null
sudo tar -vcpzf /mnt/backup-wp/NPM/NPM-Letsencrypt.tar.gz -C /var/lib/NPM-Letsencrypt . > /dev/null
sudo tar -vcpzf /mnt/backup-wp/NPM/NPM-Mysql.tar.gz -C /var/lib/NPM-Mysql . > /dev/null
############################################################################################
############################################################################################
echo " Alle Docker der Scripte unter /home/dockervolumes werden gestartet"
############################################################################################
cd /home/dockervolumes
readarray -d '' composeConfigs < <(find . -type f -name docker-compose.y* -print0)
for cfg in "${composeConfigs[@]}"; do
sudo docker-compose -f "$cfg" up -d
done
############################################################################################
echo ""
## ::LOGFILE EINTRAG::
echo d=$(date +%y-%m-%d_%H:%M) | sudo tee -a /home/wpbackuplog.txt > /dev/null
echo ""
echo " >>>Logfile in" /home/wpbackuplog.txt "gespeichert!"
echo ""
echo " >>>Backups gespeichert!"
echo ""
echo " Zur Kontrolle, die Backupverzeichnisse prüfen."
echo ""
echo " Ein Restore mindestens ein Mal auf einem Testsystem prüfen!"
echo ""
echo " Ende"
echo ""
#
exit
Strg-x, y, Enter
Jetzt das soeben erstellte Script ausführbar machen (darauf achten, dass man sich noch im Verzeichnis /root/scriptfiles befindet):
sudo chmod 700 wpcomposebackupscript.sh
Zum Aufruf des Scriptes folgenden Befehl eingeben:
sudo ./wpcomposebackupscript.sh
Restore:
cd && sudo mkdir -p scriptfiles
cd && cd scriptfiles && sudo nano wpcomposerestorescript.sh
#!/bin/bash
# ~/scriptfiles/wpcomposerestorescript.sh
# @knilix | https://knilixword.wordpress.com
clear
set -e
echo "####################################################"
echo "#--------------------------------------------------#"
echo "# >>> RESTORE SCRIPT <<< #"
echo "#--------------------------------------------------#"
echo "# >>> Die eigenen Werte im Script eingetragen? <<< #"
echo "#--------------------------------------------------#"
echo "# >> Um zu Starten, eine beliebige Taste drücken<< #"
echo "#--------------------------------------------------#"
echo "# >>> Zum Beenden Strg-c drücken <<< #"
echo "#--------------------------------------------------#"
echo "####################################################"
read -rsn1 -p"Press any key to continue";echo
clear
############################################################################################
echo " Restore-Verzeichnisse werden erstellt, wenn nicht vorhanden"
############################################################################################
sudo mkdir -p /home/dockervolumes && sudo mkdir -p /var/lib/wordpress && sudo mkdir -p /home/dockervolumes/proxymanager && sudo mkdir -p /var/lib/Wordpress && sudo mkdir -p /var/lib/WordpressDB && sudo mkdir -p /var/lib/NPM-Manager && sudo mkdir -p /var/lib/NPM-Mysql && sudo mkdir -p /var/lib/NPM-Letsencrypt
############################################################################################
echo " Script(e) werden kopiert"
############################################################################################
sudo cp -r /mnt/backup-wp/Compose-Scripte/* /home/dockervolumes
############################################################################################
echo " WordPress-Config-Verzeichnis wird zurückgeschrieben"
############################################################################################
sudo tar -vxpzf /mnt/backup-wp/WP/Wordpress.tar.gz -C /var/lib/Wordpress .
############################################################################################
echo " WP-Datenbankverzeichnis wird zurückgeschrieben"
############################################################################################
sudo tar -vxpzf /mnt/backup-wp/WP/WordpressDB.tar.gz -C /var/lib/WordpressDB .
############################################################################################
### Folgende 3 tar-Befehle nur, wenn "NPM" auf dem Host verwendet wird. Ansonsten mit # unter Kommentar setzen!
############################################################################################
echo " NPM-Configs-Verzeichnisse werden zurückgeschrieben"
sudo tar -vxpzf /mnt/backup-wp/NPM/NPM-Manager.tar.gz -C /var/lib/NPM-Manager .
sudo tar -vxpzf /mnt/backup-wp/NPM/NPM-Letsencrypt.tar.gz -C /var/lib/NPM-Letsencrypt .
sudo tar -vxpzf /mnt/backup-wp/NPM/NPM-Mysql.tar.gz -C /var/lib/NPM-Mysql .
############################################################################################
echo " Alle Docker der Scripte unter /home/dockervolumes werden gestartet"
############################################################################################
cd /home/dockervolumes
readarray -d '' composeConfigs < <(find . -type f -name docker-compose.y* -print0)
for cfg in "${composeConfigs[@]}"; do
sudo docker-compose -f "$cfg" up -d
done
echo ""
echo " Ende"
echo ""
#
exit
Strg-x, y, Enter
Jetzt das soeben erstellte Script ausführbar machen:
sudo chmod 700 wpcomposerestorescript.sh
Zum Aufruf des Scriptes folgenden Befehl eingeben:
sudo ./wpcomposerestorescript.sh
Das Script wird abgearbeitet und die Befehle ausgeführt.