aboutsummaryrefslogtreecommitdiff
path: root/docker/mariadb/backup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/mariadb/backup.sh')
-rw-r--r--docker/mariadb/backup.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/docker/mariadb/backup.sh b/docker/mariadb/backup.sh
new file mode 100644
index 000000000..8c494a5eb
--- /dev/null
+++ b/docker/mariadb/backup.sh
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+
+set -eu
+
+# Execute a full backup
+backup_full() {
+ echo "Taking a full backup"
+ mariabackup --defaults-file=/etc/mysql/my.cnf \
+ --no-timestamp \
+ --stream=xbstream \
+ --compress \
+ --history=$(date +%d-%m-%Y) ./ > \
+ $BACKUP_DIR/mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs
+}
+
+# Execute an incremental backup
+backup_incremental() {
+ echo "Taking an incremental backup"
+ mariabackup --defaults-file=/etc/mysql/my.cnf \
+ --no-timestamp \
+ --stream=xbstream \
+ --compress \
+ --incremental \
+ --incremental-history-name=$(date +%d-%m-%Y) \
+ --history=$(date +%d-%m-%Y) ./ > \
+ $BACKUP_DIR/incremental-$(date +%H)-mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs
+}
+
+BACKUP_DIR=/backup/
+cd $BACKUP_DIR
+
+if [ -n $BACKUP_TYPE ]; then
+ case $BACKUP_TYPE in
+ "full")
+ backup_full
+ ;;
+ "incremental")
+ backup_incremental
+ ;;
+ *)
+ echo "Only full or incremental options are supported."
+ exit 1
+ ;;
+ esac
+else
+ echo "You need to specify either full or incremental backup options."
+ exit 1
+fi