This commit is contained in:
2026-10-03 14:33:08 +04:00
parent 6a73d760c4
commit 93a9442e1c
67 changed files with 941 additions and 698 deletions
+20 -12
View File
@@ -74,9 +74,17 @@ dump_remote_database() {
local port="$4"
local username="$5"
local password="$6"
local network=host
log "Создаю дамп AzerothCore ${database}"
docker run --rm --network host \
if [[ "$host" == host.docker.internal ]]; then
host=127.0.0.1
elif [[ "$host" == db ]]; then
network="$(env_value VMANGOS_DOCKER_NETWORK)"
network="${network:-vmangos_default}"
fi
log "Создаю дамп vMaNGOS ${database}"
docker run --rm --network "$network" \
--env MYSQL_PWD="$password" \
mysql:8.4 \
mysqldump \
@@ -125,7 +133,7 @@ main() {
fi
local timestamp object_prefix web_database
local acore_host acore_port acore_username acore_password acore_databases
local vmangos_host vmangos_port vmangos_username vmangos_password vmangos_databases
local database filename
local -a databases=() files=()
@@ -134,15 +142,15 @@ main() {
object_prefix="${object_prefix:-backups/databases}"
object_prefix="${object_prefix%/}/$(date -u '+%Y/%m/%d')/${timestamp}"
web_database="$(env_value DB_DATABASE)"
acore_host="$(env_value AZEROTHCORE_AUTH_DB_HOST)"
acore_port="$(env_value AZEROTHCORE_AUTH_DB_PORT)"
acore_username="$(env_value AZEROTHCORE_AUTH_DB_USERNAME)"
acore_password="$(env_value AZEROTHCORE_AUTH_DB_PASSWORD)"
acore_databases="$(env_value DATABASE_BACKUP_ACORE_DATABASES)"
acore_databases="${acore_databases:-acore_auth acore_characters acore_world acore_playerbots store}"
vmangos_host="$(env_value VMANGOS_AUTH_DB_HOST)"
vmangos_port="$(env_value VMANGOS_AUTH_DB_PORT)"
vmangos_username="$(env_value VMANGOS_AUTH_DB_USERNAME)"
vmangos_password="$(env_value VMANGOS_AUTH_DB_PASSWORD)"
vmangos_databases="$(env_value DATABASE_BACKUP_VMANGOS_DATABASES)"
vmangos_databases="${vmangos_databases:-realmd characters mangos logs}"
[[ -n "$web_database" ]] || fail 'DB_DATABASE не задан'
[[ -n "$acore_host" && -n "$acore_port" && -n "$acore_username" ]] || fail 'Не настроено подключение к AzerothCore'
[[ -n "$vmangos_host" && -n "$vmangos_port" && -n "$vmangos_username" ]] || fail 'Не настроено подключение к vMaNGOS'
validate_database_name "$web_database"
RUN_DIR="${BACKUP_WORK_DIR}/${timestamp}"
@@ -154,10 +162,10 @@ main() {
databases+=("$web_database")
files+=("$filename")
for database in $acore_databases; do
for database in $vmangos_databases; do
validate_database_name "$database"
filename="${database}.sql.gz"
dump_remote_database "$database" "${RUN_DIR}/${filename}" "$acore_host" "$acore_port" "$acore_username" "$acore_password"
dump_remote_database "$database" "${RUN_DIR}/${filename}" "$vmangos_host" "$vmangos_port" "$vmangos_username" "$vmangos_password"
databases+=("$database")
files+=("$filename")
done