From 37dc8be78d0f8e53335311de9365547f4ea40afa Mon Sep 17 00:00:00 2001 From: ViViDboarder Date: Thu, 16 Jan 2020 12:05:03 -0800 Subject: [PATCH] Add scripts and new Dockerfile for SQLite backups --- helper-scripts/Readme.md | 3 +++ helper-scripts/sqlite-scripts/Dockerfile | 15 +++++++++++++++ helper-scripts/sqlite-scripts/Readme.md | 3 +++ .../sqlite-scripts/backup/after/post-backup.sh | 6 ++++++ .../sqlite-scripts/backup/before/pre-backup.sh | 6 ++++++ .../sqlite-scripts/restore/after/post-restore.sh | 6 ++++++ .../sqlite-scripts/restore/before/pre-restore.sh | 3 +++ 7 files changed, 42 insertions(+) create mode 100644 helper-scripts/Readme.md create mode 100644 helper-scripts/sqlite-scripts/Dockerfile create mode 100644 helper-scripts/sqlite-scripts/Readme.md create mode 100755 helper-scripts/sqlite-scripts/backup/after/post-backup.sh create mode 100755 helper-scripts/sqlite-scripts/backup/before/pre-backup.sh create mode 100755 helper-scripts/sqlite-scripts/restore/after/post-restore.sh create mode 100755 helper-scripts/sqlite-scripts/restore/before/pre-restore.sh diff --git a/helper-scripts/Readme.md b/helper-scripts/Readme.md new file mode 100644 index 0000000..2acbeb5 --- /dev/null +++ b/helper-scripts/Readme.md @@ -0,0 +1,3 @@ +# Helper Scripts + +These are some pre-written pre/post backup/restore scripts that can be used for some common usecases. Eg. Backing up a SQLite database. diff --git a/helper-scripts/sqlite-scripts/Dockerfile b/helper-scripts/sqlite-scripts/Dockerfile new file mode 100644 index 0000000..847c9ed --- /dev/null +++ b/helper-scripts/sqlite-scripts/Dockerfile @@ -0,0 +1,15 @@ +FROM vividboarder/docker-duplicity-cron +MAINTAINER ViViDboarder + +# Install SQLite +RUN apt-get update \ + && apt-get install -y --no-install-recommends sqlite3 \ + && apt-get clean \ + && rm -rf /var/apt/lists/* + +# Copy SQLite backup scripts +COPY ./backup /scripts/backup +COPY ./restore /scripts/restore + +# Env that points to sqlite db +ENV DB_PATH /data/db.sqlite3 diff --git a/helper-scripts/sqlite-scripts/Readme.md b/helper-scripts/sqlite-scripts/Readme.md new file mode 100644 index 0000000..885754b --- /dev/null +++ b/helper-scripts/sqlite-scripts/Readme.md @@ -0,0 +1,3 @@ +# SQLite Backup Scripts + +Add these to your image and then set an env variable `$DB_PATH` that points to the database file you wish to backup. This will use the proper SQLite backup command for backups. diff --git a/helper-scripts/sqlite-scripts/backup/after/post-backup.sh b/helper-scripts/sqlite-scripts/backup/after/post-backup.sh new file mode 100755 index 0000000..ff58dea --- /dev/null +++ b/helper-scripts/sqlite-scripts/backup/after/post-backup.sh @@ -0,0 +1,6 @@ +set -e + +cd /data + +# Remove backed up copy +rm "$DB_PATH.bak" diff --git a/helper-scripts/sqlite-scripts/backup/before/pre-backup.sh b/helper-scripts/sqlite-scripts/backup/before/pre-backup.sh new file mode 100755 index 0000000..39a569f --- /dev/null +++ b/helper-scripts/sqlite-scripts/backup/before/pre-backup.sh @@ -0,0 +1,6 @@ +set -e + +cd /data + +# Dump the SQLite database +sqlite3 "$DB_PATH" ".backup $DB_PATH.bak" diff --git a/helper-scripts/sqlite-scripts/restore/after/post-restore.sh b/helper-scripts/sqlite-scripts/restore/after/post-restore.sh new file mode 100755 index 0000000..65f246e --- /dev/null +++ b/helper-scripts/sqlite-scripts/restore/after/post-restore.sh @@ -0,0 +1,6 @@ +set -e + +cd /data + +# Restore the backedup database +mv "$DB_PATH.bak" "$DB_PATH" diff --git a/helper-scripts/sqlite-scripts/restore/before/pre-restore.sh b/helper-scripts/sqlite-scripts/restore/before/pre-restore.sh new file mode 100755 index 0000000..ea3e3e4 --- /dev/null +++ b/helper-scripts/sqlite-scripts/restore/before/pre-restore.sh @@ -0,0 +1,3 @@ +set -e + +# Don't really need to do anything here