syncing servers
This commit is contained in:
44
servers/hephaestus/ark/usr/local/bin/backup.sh
Executable file
44
servers/hephaestus/ark/usr/local/bin/backup.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/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."
|
||||
|
||||
Reference in New Issue
Block a user