Files
dao_hades/servers/hephaestus/ark/usr/local/bin/backup.sh
2025-12-07 17:31:31 +00:00

45 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Set variables
backup=$(date +%Y%m%d%H%M)
RETENTION_DAYS=5
log_message() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
log_message "Starting backup process..."
# Stop Docker
log_message "Stopping Docker services..."
cd /home/oc/dao/docker
docker compose down
## Baikal backup
log_message "Backing up Baikal database..."
cd /home/oc/dao/docker/data/baikal/Specific/db
[[ -f ./db.sqlite ]] && echo .dump | sqlite3 db.sqlite | gzip > "dumps/${backup}_baikal.sql.gz" && log_message "Baikal dumped"
# tar docker folder
log_message "Creating Docker tarball..."
cd /home/oc/dao
tar -cf "/tmp/${backup}_docker.tar.gz" docker/
# rclone upload
log_message "Uploading to remote storage..."
cd /tmp
rclone copy "${backup}_docker.tar.gz" vault:/system/backups/docker/
rm -f ${backup}_docker.tar.gz
# Clean up old backups (keep last 5 days)
log_message "Cleaning up old backups..."
rclone delete vault:/system/backups/docker/ --min-age ${RETENTION_DAYS}d
# Start Docker
log_message "Starting Docker services..."
cd /home/oc/dao/docker
docker compose up -d
log_message "Backup process completed."