#!/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."