initialer commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user