29 lines
1.1 KiB
Django/Jinja
29 lines
1.1 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
BACKUP_DIR="{{ minecraft_backups_dir }}/daily"
|
|
SERVER_DIR="{{ minecraft_server_dir }}"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_NAME="minecraft_daily_${DATE}"
|
|
RETENTION={{ backup_retention_daily }}
|
|
|
|
# Stop server for consistent backup
|
|
{{ minecraft_tools_dir }}/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password }} save-all
|
|
sleep 5
|
|
{{ minecraft_tools_dir }}/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password }} save-off
|
|
|
|
# Create backup
|
|
rsync -av --delete "${SERVER_DIR}/" "${BACKUP_DIR}/${BACKUP_NAME}/"
|
|
|
|
# Re-enable saving
|
|
{{ minecraft_tools_dir }}/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password }} save-on
|
|
|
|
# Compress backup if enabled
|
|
{% if backup_compression %}
|
|
tar -czf "${BACKUP_DIR}/${BACKUP_NAME}.tar.gz" -C "${BACKUP_DIR}" "${BACKUP_NAME}"
|
|
rm -rf "${BACKUP_DIR}/${BACKUP_NAME}"
|
|
{% endif %}
|
|
|
|
# Clean old backups
|
|
find "${BACKUP_DIR}" -name "minecraft_daily_*" -type {% if backup_compression %}f{% else %}d{% endif %} -mtime +${RETENTION} -delete
|
|
|
|
echo "Daily backup completed: ${BACKUP_NAME}" |