wrapper backup script
This commit is contained in:
parent
122549f077
commit
907cf4215b
@ -1,3 +1,5 @@
|
|||||||
# scripts
|
# scripts
|
||||||
|
|
||||||
Execute `sync.sh` to copy scripts on the server.
|
Execute `sync.sh` to copy scripts on the server.
|
||||||
|
|
||||||
|
> `vol-restore` is not yet finished !
|
||||||
|
43
sbin/vol-backup
Normal file
43
sbin/vol-backup
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Run this script as root inside a service directory.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -d "volumes" ]; then
|
||||||
|
# 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.sql
|
||||||
|
nerdctl exec -e MYSQL_PWD=$DB_PASSWORD $CONTAINER_NAME mariadb-dump -u $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
||||||
|
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.sql
|
||||||
|
nerdctl exec -e PGPASSWORD=$DB_PASSWORD $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compress all volumes excerpt mysql and postgres
|
||||||
|
BACKUP=${PWD##*/}.tar.zst
|
||||||
|
tar --zstd -cf /tmp/$BACKUP -C volumes .
|
||||||
|
|
||||||
|
# Put it into the storage box (pubkey needed)
|
||||||
|
STORAGE_BOX=u442569@u442569.your-storagebox.de
|
||||||
|
TODAY=$(date +%F)
|
||||||
|
ssh -p23 $STORAGE_BOX "mkdir -p $TODAY"
|
||||||
|
scp -P 23 /tmp/$BACKUP $STORAGE_BOX:/home/$TODAY
|
||||||
|
|
||||||
|
# Clean
|
||||||
|
if [ -f "volumes/$DUMP_NAME" ]; then
|
||||||
|
rm volumes/$DUMP_NAME
|
||||||
|
fi
|
||||||
|
rm /tmp/$BACKUP
|
||||||
|
fi
|
6
sbin/vol-backup-all
Normal file
6
sbin/vol-backup-all
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for dir in /srv
|
||||||
|
cd $dir
|
||||||
|
vol-backup
|
||||||
|
done
|
@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#
|
|
||||||
# Run this script as root inside a service directory.
|
|
||||||
#
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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.sql
|
|
||||||
nerdctl exec -e MYSQL_PWD=$DB_PASSWORD $CONTAINER_NAME mariadb-dump -u $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
|
||||||
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.sql
|
|
||||||
nerdctl exec -e PGPASSWORD=$DB_PASSWORD $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > volumes/$DUMP_NAME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compress all volumes excerpt mysql and postgres
|
|
||||||
BACKUP=${PWD##*/}.tar.zst
|
|
||||||
tar --zstd -cf /tmp/$BACKUP -C volumes .
|
|
||||||
|
|
||||||
# Put it into the storage box (pubkey needed)
|
|
||||||
STORAGE_BOX=u442569@u442569.your-storagebox.de
|
|
||||||
TODAY=$(date +%F)
|
|
||||||
ssh -p23 $STORAGE_BOX "mkdir -p $TODAY"
|
|
||||||
scp -P 23 /tmp/$BACKUP $STORAGE_BOX:/home/$TODAY
|
|
||||||
|
|
||||||
# Clean
|
|
||||||
if [ -f "volumes/$DUMP_NAME" ]; then
|
|
||||||
rm volumes/$DUMP_NAME
|
|
||||||
fi
|
|
||||||
rm /tmp/$BACKUP
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ARCHIVE=${PWD##*/}.tar.zst
|
|
||||||
if [ -d "volumes" ]; then
|
|
||||||
rm -r volumes
|
|
||||||
fi
|
|
||||||
mkdir volumes
|
|
||||||
tar --zstd --same-owner -xvf $ARCHIVE -C volumes
|
|
||||||
|
|
||||||
# Add import .sql if db
|
|
17
sbin/vol-restore
Executable file
17
sbin/vol-restore
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Run this script as root inside a service directory.
|
||||||
|
# The backup have to be in the same directory.
|
||||||
|
#
|
||||||
|
|
||||||
|
BACKUP=${PWD##*/}.tar.zst
|
||||||
|
if [ -d "volumes" ]; then
|
||||||
|
rm -r volumes
|
||||||
|
fi
|
||||||
|
mkdir volumes
|
||||||
|
tar --zstd --same-owner -xvf $BACKUP -C volumes
|
||||||
|
|
||||||
|
# Todo :
|
||||||
|
# Import .sql if there
|
||||||
|
# rm volumes/*.sql
|
Loading…
x
Reference in New Issue
Block a user