Backups mit Git

Aus Contao Community Documentation

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.

Grundlagen

Backup einer Webpraesenz mittels GIT. Hierbei ist das Repository ausserhalb des Webpfades. Der Zugriff auf die MySQL Datenbank erfolgt hierbei Passwortlos, d.h. es muss bei der Eingabe der Befehle mysqldump und mysql kein Passwort angegeben werden. Dies wurde durch entsprechende Konfiguration der $HOME/.my.cnf bewerkstelligt.

  • Backupverzeichnis : $HOME/backup/contao_1
  • Contao Verzeichnis : /var/www/contao_1/html
  • Datenbank Name : DB_NAME


Erstellen des Backupverzeichnisses

cd $HOME/backup/contao_1
git init --bare
git config core.worktree /var/www/contao_1/html
git config core.bare false


in das Verzeicnis $HOME/backup/contao_1 wechseln und eine Datei "makeBackup.sh" erstellen.


#!/bin/bash
 
TAGNAME=$(date "+%Y%m%d_%H%M")
 
echo "DATABASE Dump"
mysqldump DB_NAME > /var/www/contao_1/html/database.sql
 
 
git add .
git commit -m $TAGNAME
 
rm /var/www/contao_1/html/database.sql

diese Datei ausfuehrbar machen :

chmod +x makeBackup.sh

Erstellen eines Backups

in das Backupverzeichnis wechseln und die makeBackup.sh aufrufen.

cd $HOME/backup/contao_1
./makeBackup.sh

Danach wird die DB erstellt, alles in GIT versioniert, und final die database.sql wieder geloescht. Dies kann auch mittels cron automatisiert werden.


Restore eines Backups

Anzeigen der vorhandenen Sicherungen :

$> git log --oneline
 
1628ed4 20130524_1645
3405409 20130524_1630
ad83395 20130524_1615

bzw.

 git log --oneline | grep 1615
 
ad83395 20130524_1615

D.h. der Commit ist ad83395 und kann mit

git checkout -f ad83395

wiederhergestellt werden. Danach nur noch die database.sql manuell wiederherstellen. Oder via Hook. Hierzu im Verzeichnis hooks die Datei post-checkout erstellen mit diesem Inhalt :

#!/bin/bash
 
echo "restore database"
mysql DB_NAME < /var/www/contao_1/html/database.sql
 
 
rm /var/www/contao_1/html/database.sql


Ein "Loeschen" von alten Sicherungen ist nicht moeglich

"Frage"


Ansichten
Meine Werkzeuge

Contao Community Documentation

Nein, der Hangout ist noch nicht vorbei, wir schweigen nur. Es heisst ja auch hangout und nicht bryll out.

Christian Schiffler
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge