From 9df40ea18b63c0f7b2adbb3404a6b5d77528ee05 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 14 Oct 2014 22:06:20 +0200 Subject: Started work on backup script --- scripts/system-backup | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 scripts/system-backup (limited to 'scripts') diff --git a/scripts/system-backup b/scripts/system-backup new file mode 100755 index 0000000..666180b --- /dev/null +++ b/scripts/system-backup @@ -0,0 +1,57 @@ +#!/bin/bash + +if [ "$(whoami)" != "root" ]; then + echo "Must be running as root!" + exit 1 +fi + +DIR="/root/backup/$(date +%s)" + +if [ -d "$DIR" ]; then + echo "Backup already running!?" + exit 1 +fi + +mkdir -p "$DIR" +cd "$DIR" || exit 1 + +mysqldump --add-locks --defaults-extra-file=/etc/mysql/debian.cnf --default-character-set=utf8 --databases openslx bwLehrpool > db.sql +RET=$? +if [ $RET -ne 0 ]; then + echo "Database dump failed with exit code $RET" + exit 1 +fi + +FILELIST=" + /opt/openslx/configs + /opt/syncdaemon/config/identity.properties +" + +tar --ignore-failed-read -k -c -p -z -f files.tgz $FILELIST # no quotes here! +RET=$? +if [ $RET -ne 0 ]; then + echo "WARNING: filesystem-tar exited with code $RET - backup might be incomplete!" +fi + +tar -k -c -z -f backup.tgz files.tgz db.sql +RET=$? +if [ ! -f backup.tgz ]; then + echo "Creating backup.tgz failed!" + exit 1 +fi +if [ $RET -ne 0 ]; then + echo "WARNING: final tar exited with code $RET - backup might be incomplete!" +fi + +chown www-data backup.tgz +chmod 0600 backup.tgz + +FILE="/tmp/bwlp-backup-$(date +%s).tgz" +if ! mv backup.tgz "$FILE"; then + echo "moving backup to $FILE failed." + exit 1 +fi + +echo "Location: $FILE" +exit 0 + -- cgit v1.2.3-55-g7522