#!/bin/bash # Backup script for Synology DS218+ # Run via Task Scheduler every 6 hours BACKUP_DIR="/volume1/btc_bot/backups" DB_NAME="btc_data" DB_USER="btc_bot" RETENTION_DAYS=30 DATE=$(date +%Y%m%d_%H%M) echo "Starting backup at $(date)" # Create backup directory if not exists mkdir -p $BACKUP_DIR # Create backup docker exec btc_timescale pg_dump -U $DB_USER -Fc $DB_NAME > $BACKUP_DIR/btc_data_$DATE.dump # Compress if [ -f "$BACKUP_DIR/btc_data_$DATE.dump" ]; then gzip $BACKUP_DIR/btc_data_$DATE.dump echo "Backup created: btc_data_$DATE.dump.gz" # Calculate size SIZE=$(du -h $BACKUP_DIR/btc_data_$DATE.dump.gz | cut -f1) echo "Backup size: $SIZE" else echo "Error: Backup file not created" exit 1 fi # Delete old backups DELETED=$(find $BACKUP_DIR -name "*.dump.gz" -mtime +$RETENTION_DAYS | wc -l) find $BACKUP_DIR -name "*.dump.gz" -mtime +$RETENTION_DAYS -delete echo "Deleted $DELETED old backup(s)" echo "Backup completed at $(date)"