Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
backup [2017/03/30 07:57]
mike
backup [2017/03/30 08:00]
mike
Zeile 18: Zeile 18:
  
 Das Backup wird komprimiert mittels gzip und asymmetrisch verschlüsselt. Der Publickey zum Verschlüsseln liegt dabei am Server, der Privatekey wird sicher verwahrt und wird nur zum entschlüsseln eines Backups benötigt - er liegt nicht innerhalb der VM. Das Backup wird komprimiert mittels gzip und asymmetrisch verschlüsselt. Der Publickey zum Verschlüsseln liegt dabei am Server, der Privatekey wird sicher verwahrt und wird nur zum entschlüsseln eines Backups benötigt - er liegt nicht innerhalb der VM.
 +
 +===== Skripte =====
  
 Die Backupskripte liegen dabei in ''/​op/​webserver/​backup'',​ das Dateilayout sieht folgendermaßen aus: Die Backupskripte liegen dabei in ''/​op/​webserver/​backup'',​ das Dateilayout sieht folgendermaßen aus:
Zeile 27: Zeile 29:
 </​file>​ </​file>​
  
 +==== backup.sh ====
 +
 +Das Backupskript selbst. Akzeptiert folgende Aufrufe:
 +
 +=== # ./backup.sh ===
 +Ohne Parameter wird ein tägliches Backup angelegt
 +
 +=== # ./backup.sh month ===
 +Ein monatliches Backup wird erstellt
 +
 +=== # ./backup.sh year ===
 +Ein jährliches Backup wird erstellt
 + 
 +<​code>​
 +#!/bin/bash
 +
 +
 +BACKUP_DIR=/​srv/​backup
 +DATABASE="​datenschutz"​
 +
 +
 +DOW=$(date +%u)
 +MONTH=$(date +%m)
 +YEAR=$(date +%Y)
 +
 +
 +DAILY_FILE="​mysqldump_daily_$DOW.sql.gz.enc"​
 +MONTHLY_FILE="​mysqldump_monthly_$MONTH.sql.gz.enc"​
 +YEARLY_FILE="​mysqldump_yearly_$YEAR.sql.gz.enc"​
 +
 +
 +BACKUPFILE=$BACKUP_DIR/​$DAILY_FILE
 +if [ "​$1"​ ==  "​month"​ ]; then
 +  BACKUPFILE=$BACKUP_DIR/​$MONTHLY_FILE
 +fi
 +
 +if [ "​$1"​ ==  "​year"​ ]; then
 +  BACKUPFILE=$BACKUP_DIR/​$YEARLY_FILE
 +fi
 +
 +echo "​Backup to $BACKUPFILE"​
 +
 +mysqldump --defaults-extra-file=/​opt/​webserver/​backup/​mysqldump.cnf ​ --single-transaction $DATABASE | \
 +gzip | \
 +openssl smime -encrypt -binary -text -aes256 -out $BACKUPFILE -outform DER /​opt/​webserver/​backup/​mysqldump-secure.pub.pem
 +</​code>​