62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
################################################################################
|
|
### Variables
|
|
|
|
# Source directory
|
|
source="/var/netig/srv"
|
|
|
|
# Destination directory
|
|
destination="/var/netig/bak"
|
|
|
|
# Backup file name
|
|
backup="bak_$(hostname -f)_$(date +"%Y%m%d").tar.zst"
|
|
|
|
################################################################################
|
|
### Down services
|
|
|
|
( cd /var/netig/srv/status.netig.net && docker compose down )
|
|
|
|
for f in /var/netig/srv/*
|
|
do
|
|
if [ -d "$f" ]; then
|
|
cd $f
|
|
docker compose down
|
|
fi
|
|
done
|
|
|
|
################################################################################
|
|
### Making the backup archive
|
|
|
|
echo
|
|
echo " Making the backup archive."
|
|
echo
|
|
tar --zstd -cf $destination/$backup -C $source .
|
|
|
|
################################################################################
|
|
### Up services
|
|
|
|
for f in /var/netig/srv/*
|
|
do
|
|
if [ -d "$f" ]; then
|
|
cd $f
|
|
if [ -d "django" ]
|
|
then
|
|
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
|
|
else
|
|
docker compose up -d
|
|
fi
|
|
fi
|
|
done
|
|
|
|
################################################################################
|
|
### Remove destination archives older than n days
|
|
find $destination -name "bak_*" -type f -mtime +20 -delete
|
|
|
|
################################################################################
|
|
### End message
|
|
|
|
echo
|
|
echo " Backup done."
|
|
echo
|