[Docker Backup Script v1.0]

This commit is contained in:
2024-04-21 14:57:03 +01:00
parent b19c168123
commit 435ffacdc4
+69
View File
@@ -0,0 +1,69 @@
#!/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"