[Docker Backup Script v1.0]

- Added Gogs to backup script.
- Made various tweaks.
This commit is contained in:
2024-04-21 15:39:17 +01:00
parent 435ffacdc4
commit fd10e50188
+39 -7
View File
@@ -13,10 +13,10 @@ function update_perms() {
}
function list_backups() {
du -h $1
tree -sh $1
}
function create_backup_dir() {
function create_backup_dirs() {
for var in "$@"
do
if ! [ -d $var ]; then
@@ -42,17 +42,48 @@ function bookstack() {
echo "Backing up $CTR_NAME..."
# Create Backup Paths
create_backup_dir $ROOT_CTR_BACKUP_PATH $CTR_BACKUP_PATH
create_backup_dirs $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
update_perms $ROOT_CTR_BACKUP_PATH
# List Backups
list_backups $CTR_BACKUP_PATH
list_backups $ROOT_CTR_BACKUP_PATH
# Rotate Backups
rotate_backups $ROOT_CTR_BACKUP_PATH
# Print end of Backup
echo "Finished backing up $CTR_NAME"
echo "-----------------------------"
echo
}
function gogs() {
APP_PATH=$1
CTR_NAME="Gogs"
ROOT_CTR_BACKUP_PATH=$APP_PATH/_backups
CTR_BACKUP_PATH=$ROOT_CTR_BACKUP_PATH/$DT_STAMP
LFS_BACKUP_FILE=$CTR_BACKUP_PATH/gogs_lfs.tgz
# Print Container Name
echo "Backing up $CTR_NAME..."
# Create Backup Paths
create_backup_dirs $ROOT_CTR_BACKUP_PATH $CTR_BACKUP_PATH
docker exec gogs /app/gogs/gogs backup -c /data/gogs/conf/app.ini --target /data/tmp
mv $APP_PATH/data/tmp/*.zip $CTR_BACKUP_PATH
tar -czf $LFS_BACKUP_FILE -P $APP_PATH/data/gogs/data/lfs-objects
# Change Permissions
update_perms $ROOT_CTR_BACKUP_PATH
# List Backups
list_backups $ROOT_CTR_BACKUP_PATH
# Rotate Backups
rotate_backups $ROOT_CTR_BACKUP_PATH
@@ -66,4 +97,5 @@ function bookstack() {
echo "Docker Backup Script v1.0"
echo
bookstack "/volume1/Docker/bookstack"
bookstack "/volume1/Docker/bookstack"
gogs "/volume1/Docker/gogs"