summaryrefslogtreecommitdiff
path: root/bin/mf-backup
diff options
context:
space:
mode:
Diffstat (limited to 'bin/mf-backup')
-rwxr-xr-xbin/mf-backup113
1 files changed, 99 insertions, 14 deletions
diff --git a/bin/mf-backup b/bin/mf-backup
index 8ce05d4..46307a8 100755
--- a/bin/mf-backup
+++ b/bin/mf-backup
@@ -1,22 +1,107 @@
-#!/bin/bash
+#!/usr/bin/bash
PATH=/usr/bin:/bin:/usr/sbin:/sbin
+source /etc/mf-backup
-### Backup Next Cloud
+function check_for_error() {
+ [[ $1 -ne 0 ]] && GLOBAL_ERROR=$1
+}
-/usr/local/bin/occ maintenance:mode --on
-mysqldump -u root --all-databases > /var/lib/mysql-backup/dump.sql
-kopia snapshot create /var/lib/mysql-backup
-kopia snapshot create /data/nextcloud
-/usr/local/bin/occ maintenance:mode --off
+function backup_nextcloud() {
+ local GLOBAL_ERROR=0
+ /usr/local/bin/occ maintenance:mode --on && \
+ mysqldump -u root --all-databases > /var/lib/mysql-backup/dump.sql && \
+ kopia $KOPIA_OPTS snapshot create /var/lib/mysql-backup && \
+ kopia $KOPIA_OPTS snapshot create /data/nextcloud && \
+ /usr/local/bin/occ maintenance:mode --off
+ check_for_error $?
+ return $GLOBAL_ERROR
+}
+
+function backup_mariadb() {
+ local GLOBAL_ERROR=0
+ mysqldump -u root --all-databases > /var/lib/mysql-backup/dump.sql
+ check_for_error $?
+ echo "kopia snapshot create /var/lib/mysql-backup"
+ kopia $KOPIA_OPTS snapshot create /var/lib/mysql-backup
+ check_for_error $?
+ return $GLOBAL_ERROR
+}
+
+function log() {
+ echo "$1" >> $LOGFILE
+}
+
+# Check B2 keys
+if [ -z "$B2_KEY_ID" ]; then
+ echo "Missing B2_KEY_ID in /etc/mf-backup"
+ exit 1
+fi
+
+if [ -z "$B2_KEY" ]; then
+ echo "Missing B2_KEY in /etc/mf-backup"
+ exit 1
+fi
+
+if [ -z "$DIRS_TO_BACKUP" ]; then
+ echo "Missing DIRS_TO_BACKUP in /etc/mf-backup"
+ exit 1
+fi
+
+LOGFILE=`mktemp`
+GLOBAL_ERROR=0
+
+## Backup NextCloud
+if [[ $BACKUP_NEXTCLOUD =~ ^[yY]$ ]]; then
+ log ""
+ log "-------------------------------------------------------------"
+ log " KOPIA NEXTCLOUD BACKUP"
+ log "-------------------------------------------------------------"
+ log ""
+ backup_nextclod >> $LOGFILE 2>&1
+ check_for_error
+fi
+
+## Backup MariaDB
+if [[ $BACKUP_MARIADB =~ ^[yY]$ ]]; then
+ log ""
+ log "-------------------------------------------------------------"
+ log " KOPIA MARIADB BACKUP"
+ log "-------------------------------------------------------------"
+ log ""
+ backup_mariadb >> $LOGFILE 2>&1
+ check_for_error
+fi
## Backups
-kopia snapshot create /etc
-kopia snapshot create /var/www
-kopia snapshot create /home
-kopia snapshot create /root
-kopia snapshot create /usr/local
+log ""
+log "-------------------------------------------------------------"
+log " KOPIA STD FILESYSTEM SNAPSHOT "
+log " ${DIRS_TO_BACKUP}"
+log "-------------------------------------------------------------"
+log ""
+
+for DIR in $DIRS_TO_BACKUP
+do
+ echo "kopia snapshot create $DIR" >> $LOGFILE
+ kopia $KOPIA_OPTS snapshot create $DIR >> $LOGFILE 2>&1
+ check_for_error $?
+done
## Replicate
-source /etc/mf-backup.sh
-kopia repository sync-to b2 --bucket=mfamily-bu-cobalt --key-id=$B2_KEY_ID --key=$B2_KEY --delete
+log ""
+log "-------------------------------------------------------------"
+log " KOPIA S3 TO BACKBLAZE B2 REPLICATION"
+log "-------------------------------------------------------------"
+log ""
+kopia $KOPIA_OPTS repository sync-to b2 --bucket=${KOPIA_PREFIX}${X_HOSTNAME} \
+ --key-id=$B2_KEY_ID --key=$B2_KEY --delete >> $LOGFILE 2>&1
+ check_for_error $?
+
+## Mail log on error
+if [[ $GLOBAL_ERROR -ne 0 ]]; then
+ MSUBJ="${X_HOSTNAME} Backup Job Errors"
+ mail -r $MAIL_FROM -s "$MSUBJ" $MAIL_TO < $LOGFILE
+fi
+rm $LOGFILE
+exit 0