Backup erstellen

Wie können wir helfen?

support@amargo.de | Support-Formular | 0621/4834324-1

< Alle Themen
Drucken

Backup erstellen

Ein Backup mit rsync und mysqldump erstellen

Dateien rekursiv mit rsync sichern

auf demselben host

Der folgende Befehl kopiert den Inhalt des Verzeichnisses „Linux“ (das Verzeichnis selbst nicht) und den Inhalt aller Unterverzeichnisse rekursiv in den Ordner „rsync“.

rsync -av /home/test/Desktop/Linux /home/test/Desktop/rsync

 

auf einen externen host

Der folgende Befehl funktioniert wie oben, nur dass das Zielverzeichnis auf einem externen host liegt. Zugang zum externen Host muss möglich sein.

rsync -av /home/test/Desktop/Linux 192.168.56.100:/home/test/Desktop/rsync

Ist der Zugriff auf den externen Host per Passwort geschützt und/oder es soll ein bestimmter User verwendet werden, dann muss der Aufruf wie folgt aussehen. Nach dem Ausführen des Befehls wird eventuell das Passwort verlangt.

rsync -av /home/test/Desktop/Linux username@192.168.56.100:/home/test/Desktop/rsync

 

Verzeichnisse ausschließen

um bestimmte Verzeichnisse auszuschließen kann der Befehl wie folgt ergänz werden

--exclude 'verzeichnisname'

Es können auch mehrere Ausschlüsse mit Leerzeichen verkettet werden

--exclude 'verzeichnisname' --exclude 'verzeichnisname-2' --exclude 'verzeichnisname-3'

Die Ausschlüsse werden mit Leerzeichen an das „-av“ angefügt

rsync -av --exclude 'verzeichnisname' /home/test/Desktop/Linux username@192.168.56.100:/home/test/Desktop/rsync

 

In der Quelle NICHT vorhandene Dateien im Zielverzeichnis löschen

Um eine 100% konsistente Sicherung zu erhalten, wird mit dem Zusatz “ –delete“ dafür gesorgt, dass alle Dateien und Verzeichnisse, die in der Quelle NICHT vorhanden sind, im Zielverzeichnis gelöscht werden.

rsync -av --delete --exclude 'verzeichnisname' /home/test/Desktop/Linux username@192.168.56.100:/home/test/Desktop/rsync

Auf diese Weise ist sichergestellt, dass kein alter „Datenmüll“ übrig bleibt, der eventuell zu Problemen führen könnte.

 

Datenbank Sicherung erstellen

https://www.amargo.de/wissensdatenbank/mysql-befehle-auf-der-konsole-ausfuehren/

 

Beispiel Script für ein Backup

#!/bin/sh
# Script soll nur laufen, wenn bestätigt wurde, dass der SHOP im Wartungsmodus ist
read -p "Haben Sie den Wartungsmodus des SHOPs eingeschaltet? (ja/nein):" einaus
if [ $einaus == "ja" ]
then
echo "Wartungsmodus ist eingeschaltet"
else
echo "Fehler: Bitte den Wartungsmodus einschalten, BEVOR Sie das Script starten"
exit 0
fi

# Script soll nur laufen, wenn bestätigt wurde, dass die Live-Datenbank im Profihost Backend kopiert wurde
read -p "Haben Sie die Live-Datenbank des SHOPs im Profihost Backend kopiert? (ja/nein):" kopiert
if [ $kopiert == "ja" ]
then
echo "Live-Datenbank wurde im Profihost Backend kopiert"
else
echo "Fehler: Bitte erstellen Sie eine Kopie der Live-Datenbank, BEVOR Sie das Script starten"
exit 0
fi

# Backup der Files der Liveumgebung erstellen (Verzeichnis "testumgebungen/" ausschließen)
# alle Dateien, die im Quellverzeichnis NICHT vorhanden sind, werden im Zielverzeichnis gelöscht
# dies ist wichtig, um eine konsistente Sicherung zu haben, die wir problemlos zurückspielen können
date +"%d.%m.%Y %T"
echo "Dateien kopieren: Start"
rsync -arv --delete --exclude 'testumgebungen' /home/vhost/www.xyz.de /home/vhost/_backup/www.xyz.de
date +"%d.%m.%Y %T"
echo "Dateien kopieren: Ende"

# Backup der Datenbank erstellen
date +"%d.%m.%Y %T"
echo "Datenbank sichern: Start"
mysqldump -u username -p databasename > /home/vhost/_backup/databasename.sql
date +"%d.%m.%Y %T"
echo "Datenbank sichern: Ende"
echo
echo "Bitte den Wartungsmodus im Livesystem wieder ausschalten !"

 

Beispiel Script für ein Rollback

#!/bin/sh
# Script soll nur laufen, wenn bestätigt wurde, dass der SHOP im Wartungsmodus ist
read -p "Haben Sie den Wartungsmodus des SHOPs eingeschaltet? (ja/nein):" einaus
if [ $einaus == "ja" ]
then
echo "Wartungsmodus ist eingeschaltet"
else
echo "Fehler: Bitte den Wartungsmodus einschalten, BEVOR Sie das Script starten"
exit 0
fi

# Datenbanksicherung in die Live-DB einlesen
date +"%d.%m.%Y %T"
echo "Einlesen der Datenbank-Sicherung in die Live-Datenbank: Start"
/usr/local/mysql5/bin/mysql -p -u username databasename < /home/vhost/_backup/databasename.sql
date +"%d.%m.%Y %T"
echo "Einlesen der Datenbank-Sicherung in die Live-Datenbank: Ende"

# Live-System Verzeichnis umbenennen
echo "Verzeichnis Livesystem umbenennen (_old)"
mv /home/vhost/www.xyz.de /home/vhost/www.xyz.de_old

# Files der Sicherung in Livesystem "verwandeln"
echo "Verzeichnis des Backups in Livesystem 'verwandeln'"
mv /home/vhost/_backup/www.xyz.de /home/vhost/www.xyz.de

echo
echo "Der Rollback wurde vollständig durchgeführt"
echo "Das Livesystem sollte nun wie vorher funktionieren"
echo
echo "Bitte den Wartungsmodus im Livesystem wieder ausschalten !"

 

War dieser Artikel hilfreich?
0 out of 5 stars
5 Sterne 0%
4 Sterne 0%
3 Sterne 0%
2 Sterne 0%
1 Sterne 0%
Please Share Your Feedback
How Can We Improve This Article?
Inhaltsverzeichnis