mirror of
https://github.com/tryzealot/zealot-docker.git
synced 2026-02-24 09:13:16 +00:00
48 lines
996 B
Bash
Executable File
48 lines
996 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
# Backup tools
|
|
# this script generates a tgz file with the db dump, app uploads
|
|
#
|
|
# example: ./backup
|
|
# example: ./backup /path/to/your/backup/directory
|
|
|
|
SOURCE_DIR="."
|
|
DEST_DIR=${DEST_DIR:-$SOURCE_DIR}
|
|
|
|
BACKUP_DIR="$DEST_DIR/backups"
|
|
TODAY=`date '+%Y%m%d%H%M%S'`
|
|
DEST_FILE=$BACKUP_DIR/`hostname`-$TODAY.tar.gz
|
|
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
backup_db () {
|
|
echo ""
|
|
echo "== Backup db =="
|
|
docker exec zealot-postgresql su - postgres -c 'pg_dump -O -Fc zealot -f /tmp/db.dump'
|
|
docker cp zealot-postgresql:/tmp/db.dump $BACKUP_DIR
|
|
}
|
|
|
|
backup_zealot () {
|
|
echo ""
|
|
echo "== Backup zealot data =="
|
|
docker cp zealot-zealot:/app/public/uploads $BACKUP_DIR/uploads
|
|
}
|
|
|
|
compress () {
|
|
echo ""
|
|
echo "== Compress to .tar.gz file =="
|
|
tar cvzf $DEST_FILE -X $SOURCE_DIR/.backup-ignore $SOURCE_DIR
|
|
}
|
|
|
|
cleanup () {
|
|
echo
|
|
echo "== Cleaning up =="
|
|
rm -rf $BACKUP_DIR/uploads $BACKUP_DIR/db.dump
|
|
}
|
|
trap cleanup ERR INT TERM HUP QUIT
|
|
|
|
backup_db
|
|
backup_zealot
|
|
compress
|
|
cleanup
|