[Docker Backup Script v1.0]
This commit is contained in:
@@ -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"
|
||||
Reference in New Issue
Block a user