check new version
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# Script de backup intégré pour Minecraft
|
||||
|
||||
BACKUP_DIR="{{ minecraft_backup_dir | default('/opt/minecraft/backups') }}"
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
MCRCON="{{ minecraft_tools_dir }}/mcrcon"
|
||||
RCON_PORT="{{ rcon_port }}"
|
||||
RCON_PASS="{{ rcon_password }}"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Créer le répertoire de backup si nécessaire
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Fonction pour envoyer des commandes RCON
|
||||
send_command() {
|
||||
$MCRCON -H localhost -P $RCON_PORT -p "$RCON_PASS" "$1" 2>/dev/null
|
||||
}
|
||||
|
||||
# Fonction de backup
|
||||
perform_backup() {
|
||||
echo "[$(date)] Démarrage du backup..."
|
||||
|
||||
# Avertir les joueurs
|
||||
send_command "say Backup automatique dans 10 secondes..."
|
||||
sleep 5
|
||||
send_command "say Backup en cours, lag possible..."
|
||||
|
||||
# Forcer la sauvegarde
|
||||
send_command "save-all flush"
|
||||
sleep 2
|
||||
|
||||
# Désactiver l'auto-save temporairement
|
||||
send_command "save-off"
|
||||
|
||||
# Créer le backup
|
||||
tar -czf "$BACKUP_DIR/minecraft_backup_$DATE.tar.gz" \
|
||||
-C "$(dirname $SERVER_DIR)" \
|
||||
"$(basename $SERVER_DIR)" \
|
||||
--exclude='*.log' \
|
||||
--exclude='logs/*.gz' \
|
||||
--exclude='crash-reports/*'
|
||||
|
||||
# Réactiver l'auto-save
|
||||
send_command "save-on"
|
||||
|
||||
# Informer les joueurs
|
||||
send_command "say Backup terminé!"
|
||||
|
||||
echo "[$(date)] Backup créé: minecraft_backup_$DATE.tar.gz"
|
||||
|
||||
# Nettoyer les vieux backups (garder les 7 derniers)
|
||||
ls -t "$BACKUP_DIR"/minecraft_backup_*.tar.gz 2>/dev/null | tail -n +8 | xargs rm -f
|
||||
}
|
||||
|
||||
# Vérifier si le serveur est actif
|
||||
if systemctl is-active --quiet {{ minecraft_service_name }}; then
|
||||
perform_backup
|
||||
else
|
||||
echo "[$(date)] Serveur inactif, backup sans RCON..."
|
||||
tar -czf "$BACKUP_DIR/minecraft_backup_offline_$DATE.tar.gz" \
|
||||
-C "$(dirname $SERVER_DIR)" \
|
||||
"$(basename $SERVER_DIR)"
|
||||
fi
|
Reference in New Issue
Block a user