2025-01-14 18:01:34 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2025-01-19 14:20:56 +01:00
|
|
|
#
|
|
|
|
# Run this script as root inside a service directory.
|
|
|
|
#
|
|
|
|
|
2025-01-14 18:01:34 +01:00
|
|
|
if [ ! -d "volumes" ]; then
|
|
|
|
echo 'There is no data to archive ! Make sure you are in a service directory with persistent data (ie. must be a "volumes" directory there).'
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
2025-01-19 14:20:56 +01:00
|
|
|
# Dump mysql
|
|
|
|
if [ -d "volumes/mysql" ]; then
|
|
|
|
CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_mariadb
|
|
|
|
DB_USER=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_USER"')
|
|
|
|
DB_PASSWORD=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_PASSWORD"')
|
|
|
|
DB_NAME=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$MYSQL_DATABASE"')
|
|
|
|
DUMP_NAME=$CONTAINER_NAME_$(date +%F_%T).sql
|
|
|
|
if [ -f "volumes/*.sql" ]; then
|
|
|
|
rm volumes/*.sql
|
|
|
|
fi
|
2025-01-19 14:51:50 +01:00
|
|
|
nerdctl exec -e MYSQL_PWD=$DB_PASSWORD $CONTAINER_NAME mariadb-dump -u $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
2025-01-19 14:20:56 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Dump postgres
|
|
|
|
if [ -d "volumes/postgres" ]; then
|
|
|
|
CONTAINER_NAME=$(echo ${PWD##*/} | sed -e 's/\.//g')_postgres
|
|
|
|
DB_USER=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_USER"')
|
|
|
|
DB_PASSWORD=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_PASSWORD"')
|
|
|
|
DB_NAME=$(nerdctl exec $CONTAINER_NAME bash -c 'echo "$POSTGRES_DATABASE"')
|
|
|
|
DUMP_NAME=$CONTAINER_NAME_$(date +%F_%T).sql
|
|
|
|
if [ -f "volumes/*.sql" ]; then
|
|
|
|
rm volumes/*.sql
|
|
|
|
fi
|
|
|
|
nerdctl exec -e $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Compress all volumes excerpt mysql and postgres into the staorage box (pubkey needed)
|
|
|
|
BACKUP=${PWD##*/}.tar.zst
|
2025-01-19 14:55:47 +01:00
|
|
|
ssh u442569@u442569.your-storagebox.de tar --zstd --exclude='volumes/mysql' --exclude='volumes/postgres' -cf - volumes > $BACKUP
|