45 lines
1.1 KiB
Bash
Executable File
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."
|
|
|