initialer commit

This commit is contained in:
2017-12-26 12:46:05 +01:00
commit 628e6ba83d
4 changed files with 77 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
.directory
*/.directory
*/*/.directory
.project
vitaligraf.de.sh
+4
View File
@@ -0,0 +1,4 @@
.directory
**/.directory
.project
vitaligraf.de.sh
+7
View File
@@ -0,0 +1,7 @@
FROM python:2
WORKDIR /root
RUN apt-get update && apt-get install rdiff-backup --no-install-recommends -y && apt-get clean && rm -rf /var/lib/apt/lists/*
COPY ./backup.sh /root/backup.sh
Executable
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
# set -e
source job.conf
backup(){
# SCHRITT 1:
# sichern der MySQL-Datenbanken auf dem remote host
# es muss auf dem remote host genug Platz auf der Festplatte geben damit Dump erfolgen kann!
if [ ${#MYSQL_DB[@]} -gt 0 ]
then
[ "$MYSQL_DUMP_DIR" != "" ] && [ "$MYSQL_DUMP_DIR" != "/" ] && ssh ${REMOTE_USER}@${REMOTE_HOST} "[ ! -d \"$MYSQL_DUMP_DIR\" ] && mkdir -p \"$MYSQL_DUMP_DIR\""
for db in "${MYSQL_DB[@]}"
do
ssh ${REMOTE_USER}@${REMOTE_HOST} "mysqldump -u \"$MYSQL_USER\" \"-p$MYSQL_PASS\" --add-drop-database --routines --single-transaction \"$db\" > \"$MYSQL_DUMP_DIR/$db.sql\""
done
# Ordner mit SQL-Dateien in die Sicherung aufnehmen
FOLDERS[${#MYSQL_DB[@]}]="$MYSQL_DUMP_DIR"
fi
# SCHRITT 2:
# die Sicherung der Ordner (inklusive der SQL-Dump)
for dir in "${FOLDERS[@]}"
do
# prüfen ob das backup-ordner existiert ...
if [ ! -d "/var/backups/${REMOTE_HOST}${dir}" ];
then
# ... und gegebenfals anlegen
mkdir -p "/var/backups/${REMOTE_HOST}${dir}"
fi
# die eigentliche Sicherung ...
rdiff-backup --exclude-special-files "${REMOTE_USER}@${REMOTE_HOST}::${dir}" "/var/backups/${REMOTE_HOST}${dir}"
# alle Sicherungen die älter als $DELETE_OLD_FILES löschen
rdiff-backup --remove-older-than $DELETE_OLD_FILES --force "/var/backups/${REMOTE_HOST}${dir}"
done
# SCHRITT 3:
# die SQL-Dateien vom remote host wieder löschen
if [ ${#MYSQL_DB[@]} -gt 0 ]
then
[ "$MYSQL_DUMP_DIR" != "" ] && [ "$MYSQL_DUMP_DIR" != "/" ] && ssh ${REMOTE_USER}@${REMOTE_HOST} "rm -rf \"$MYSQL_DUMP_DIR/\"*.sql"
fi
}
# ACHTUNG NOCH NICHT FERTIG !!
restore(){
for dir in "${FOLDERS[@]}"
do
rdiff-backup -r now "/var/backups/${REMOTE_HOST}${dir}" "${REMOTE_USER}@${REMOTE_HOST}::${dir}"
done
}
# Tue das da
backup