Some checks failed
Ansible Minecraft CI/CD Pipeline / Ansible Lint Check (push) Successful in 58s
Ansible Minecraft CI/CD Pipeline / Project Structure Validation (push) Failing after 3s
Ansible Minecraft CI/CD Pipeline / Security Scan (push) Successful in 4s
Ansible Minecraft CI/CD Pipeline / Deploy to Staging (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Deploy to Production (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Backup System Check (push) Has been skipped
42 lines
1.1 KiB
Django/Jinja
42 lines
1.1 KiB
Django/Jinja
#!/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" |