Files
Ansible-Minecraft-Server/roles/04-backups/templates/backup-weekly.sh.j2
hcornet 8f0877cd53
Some checks failed
Ansible Minecraft CI/CD / Ansible Lint (push) Successful in 8s
Ansible Minecraft CI/CD / Syntax Check (push) Failing after 7s
Ansible Minecraft CI/CD / Deploy to Staging (push) Has been skipped
Ansible Minecraft CI/CD / Deploy to Production (push) Has been skipped
new version
2025-08-27 15:11:08 +02:00

24 lines
853 B
Django/Jinja

#!/bin/bash
# Script de sauvegarde hebdomadaire Minecraft
set -e
BACKUP_DIR="{{ minecraft_backups_dir }}/weekly"
SOURCE_DIR="{{ minecraft_server_dir }}"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="minecraft-weekly-${DATE}"
RETENTION={{ backup_retention_weekly }}
echo "$(date): Début de la sauvegarde hebdomadaire"
# Commande save-all via rcon
{{ minecraft_tools_dir }}/mcrcon/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password | default('changeme') }} save-all || true
sleep 5
# Création de la sauvegarde
rsync {{ rsync_options }} "${SOURCE_DIR}/" "${BACKUP_DIR}/${BACKUP_NAME}/"
# Nettoyage des anciennes sauvegardes (semaines)
find "${BACKUP_DIR}" -type d -name "minecraft-weekly-*" -mtime +$((${RETENTION} * 7)) -exec rm -rf {} + 2>/dev/null || true
echo "$(date): Sauvegarde hebdomadaire terminée: ${BACKUP_NAME}"