#!/bin/bash # Daily Minecraft Backup Script # Generated by Ansible set -e # Source backup functions source {{ minecraft_tools_dir }}/backup-functions.sh # Configuration BACKUP_DIR="{{ backup_daily_dir }}" DATE=$(date +%Y%m%d_%H%M%S) BACKUP_NAME="daily_backup_$DATE" LOG_FILE="{{ minecraft_base_dir }}/logs/backup-daily.log" # Create log entry echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting daily backup..." >> "$LOG_FILE" # Create backup directory mkdir -p "$BACKUP_DIR/$BACKUP_NAME" # Stop Minecraft server for consistent backup stop_minecraft # Perform backup {% for source in backup_sources %} echo "Backing up {{ source }}..." >> "$LOG_FILE" rsync {{ rsync_options }} "{{ source }}/" "$BACKUP_DIR/$BACKUP_NAME/$(basename {{ source }})/" {% endfor %} # Start Minecraft server start_minecraft # Clean old daily backups clean_old_backups "$BACKUP_DIR" {{ backup_retention_days }} # Compress backup cd "$BACKUP_DIR" tar -czf "${BACKUP_NAME}.tar.gz" "$BACKUP_NAME" rm -rf "$BACKUP_NAME" echo "[$(date '+%Y-%m-%d %H:%M:%S')] Daily backup completed: ${BACKUP_NAME}.tar.gz" >> "$LOG_FILE"