#!/bin/bash DOCKER_UID=1034 DOCKER_GID=100 DT_STAMP=$(date +"%Y-%m-%d_%H:%M:%S") function update_perms() { if [ -d $1 ]; then chown $DOCKER_UID:$DOCKER_GID -R $1 else chown $DOCKER_UID:$DOCKER_GID $1 fi } function list_backups() { du -h $1 } function create_backup_dir() { for var in "$@" do if ! [ -d $var ]; then mkdir $var update_perms $var fi done } function rotate_backups() { find $1 -type d -mtime +7 -delete } function bookstack() { APP_PATH=$1 CTR_NAME="Bookstack" ROOT_CTR_BACKUP_PATH=$APP_PATH/_backups CTR_BACKUP_PATH=$ROOT_CTR_BACKUP_PATH/$DT_STAMP DB_BACKUP_FILE=$CTR_BACKUP_PATH/bookstack_db.sql APP_BACKUP_FILE=$CTR_BACKUP_PATH/bookstack_app.tgz # Print Container Name echo "Backing up $CTR_NAME..." # Create Backup Paths create_backup_dir $ROOT_CTR_BACKUP_PATH $CTR_BACKUP_PATH docker exec bookstack_db /usr/bin/mysqldump -u bookstack -p bookstackapp --password=nwb9buaBJX7bxt5pnk > $DB_BACKUP_FILE tar -czf $APP_BACKUP_FILE -P $APP_PATH/app_data/www # Change Permissions update_perms $DB_BACKUP_FILE update_perms $APP_BACKUP_FILE # List Backups list_backups $CTR_BACKUP_PATH # Rotate Backups rotate_backups $ROOT_CTR_BACKUP_PATH # Print end of Backup echo "Finished backing up $CTR_NAME" echo "-----------------------------" echo } echo "Docker Backup Script v1.0" echo bookstack "/volume1/Docker/bookstack"