diff options
| author | Jason D. McCormick <jason@mfamily.org> | 2023-12-20 16:47:37 -0500 |
|---|---|---|
| committer | Jason D. McCormick <jason@mfamily.org> | 2023-12-20 16:47:37 -0500 |
| commit | 62bca1b61296ac551574818c5021188913678168 (patch) | |
| tree | 3224e3bdd527bb2f9253c097512ffd319f4caeed /bin/mf-backup | |
| parent | 93f370195a4178aefce312027ad042559dd51a64 (diff) | |
updated mf-backup, add Makefiles
Diffstat (limited to 'bin/mf-backup')
| -rwxr-xr-x | bin/mf-backup | 113 |
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 |
