netcup Website Backup

Meine Website wird bei netcup gehostet. Standard WordPress Blog mit einer MySQL Datenbank.
Da mein Webhosting Paket keine automatischen Backups beinhaltet, erstelle ich sie mir mit diesem einfachen script selber.

29.04.2021 - Backups automatisch nach Hause holen
25.01.2021 - script um --no-tablespaces erweitert

website-backup.sh

#!/usr/bin/bash
#######################################################################
# create backup of documentroot and sql database from bachmann-lan.de #
#######################################################################
DB_HOST="Datenbankserver"
DB_NAME="Datenbankname"
DB_USER="Datenbankbenutzer"
DB_PASS="Datenbankpasswort"

echo "-----------------------------------------------------------"
echo "backup job started on `date "+%A %d.%m.%Y %T"`"
echo "site: bachmann-lan.de"
echo "-----------------------------------------------------------"

# remove backups older than 70 days
find /backup/website/ -mtime +70 -exec rm {} \;

# dump sql database
mysqldump --no-tablespaces --host=$DB_HOST --user=$DB_USER --password=$DB_PASS $DB_NAME >/backup/$DB_NAME.sql

# tar website documentroot and sql dump
tar cPfz /backup/website/bachmann-lan.de-$(date +%Y.%m.%d_%M%S).tgz /httpdocs/bachmann-lan.de /backup/$DB_NAME.sql

# cleanup
rm /backup/*.sql

# backup done
du -hs /backup/website/*.tgz
echo "-----------------------------------------------------------"
du -hs /backup/website

geplante Aufgabe

Im Webhosting Control Panel unter Websites & Domains, oben rechts eine neue geplante Aufgabe erstellen.

Damit wird jetzt automatisch einmal wöchentlich die Website und SQL Datenbank auf dem Webspace selber gesichert.
Backups werden für ca. 2 Monate vorgehalten und ältere automatisch wieder gelöscht.

Einfach und funktioniert. :)

mysqldump: Error: ‘Access denied; you need (at least one of) the PROCESS privilege(s)…

Seit dem 18.01.2021 erhalte ich beim mysqldump die Fehlermeldung:

mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

Hat mit einem update des MySQL-Servers auf die Version 5.7.31 zu tun. Als workaround kann die Option –no-tablespaces beim mysqldump mit angegeben werden.
Der mysqldump wird trotz der Fehlermeldung erstellt. Auch mit der –no-tablespaces Option hat der dump die gleiche Größe.

Überprüft eure backups und macht mal einen restore. (Sollte man generell immer machen!)

Backups nach Hause holen

Da leider kein rsync möglich ist, holt sich mein Backup-Server nach dem Backuplauf per SCP immer das neuste Backup.
Um das zu automatisieren, wird ein passwortloser SSH Login auf dem netcup Server benötigt.

Sollte der backup user noch keine SSH Keys haben, müssen die erst erstellt werden.

backup@backup-server:~$ ssh-keygen

Im Webhosting Control Panel unter Websites & Domains, oben rechts auf SSH Keys und mit Add Key den Inhalt des id_rsa.pub des Backup Benutzers einfügen.

Im Terminal den SSH Zugang testen.

backup@backup-server:~# ssh hostingxxxxxx@hostingxxxxxx.a2f24.netcup.net
--- SNIP ---
Last login: Sat Mar 16 19:07:22 2021 from 10.11.12.13
bash-4.4$

website-backup-to-local-server.sh script

#!/bin/bash

# copy new netcup backup to local server
scp hostingxxxxxx@hostingxxxxxx.a2f24.netcup.net:/backup/website/*$(date +%Y.%m.%d)* /speicherort/der/backups/

# remove backups older than 70 days
find /speicherort/der/backups/ -mtime +70 -exec rm {} \;

Der backup job startet um 05:25 Uhr auf dem netcup Server und ist um 05:45 Uhr dicke fertig.
Auf dem Backup Server wird ein cronjob erstellt, der jeden Montag um 05:45 Uhr das Backup vom netcup Server holt.

45 5 * * 1 /scripts/website-backup-to-local-server.sh

Somit habe ich jetzt Backups der Website auf dem netcup Server und noch mal zusätzlich bei mir zu Hause.

7 Gedanken zu „netcup Website Backup“

  1. Danke für die Anleitung!
    Leider lässt sich die Aufgabe bei mir nicht ausführen und ich erhalte immer wieder folgenden Fehler:
    /scripts/website-backup.sh: /usr/bin/bash^M: bad interpreter: No such file or directory

    Kannst Du mir vielleicht sagen, was ich falsch gemacht habe?

    Antworten
    • Ich weiß nicht wie du die Datei abgespeichert hast. Es sind die falschen Steuerzeichen für das Zeilenende übernommen worden.
      Die Datei muss im Unix, nicht im Windows Format gespeichert werden.

      In einer Linux Shell lassen sie sich schnell entfernen:
      sed -i -e "s/\r//g" /scripts/website-backup.sh

      Antworten
  2. Danke dir vielmals.
    Genau das, was ich gesucht habe. Die Netcup Backup Methoden waren nicht zufrieden stellend.

    Ich habe das Script nur soweit angepasst, dass die Archive mit Stunde und Minute anstatt mit Minute und Sekunde enden.
    Also (date +%Y.%m.%d_%H%M).tgz
    Passt für ein Backup einer Webseite meiner Meinung nach besser.

    Das ganze wird dann bei mir über einen QNAP-Nas per FTP runtergeladen.

    Antworten

Schreibe einen Kommentar