From d230b61c0bfde7e8913b1a008fdac71d3062deecc0670b6c7fa1369883910f1a Mon Sep 17 00:00:00 2001 From: AidarKC Date: Mon, 20 Jul 2026 20:00:29 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C=20ba?= =?UTF-8?q?ckup=20production=20=D1=83=D1=81=D1=82=D0=BE=D0=B9=D1=87=D0=B8?= =?UTF-8?q?=D0=B2=D1=8B=D0=BC=20=D0=BA=20=D0=BE=D1=82=D1=81=D1=83=D1=82?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B8=D0=BC=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSION.properties | 4 +- .../scheme/shineup.me/scripts/backup_full.sh | 48 +++++++++++++++---- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/VERSION.properties b/VERSION.properties index c5543449..e9ff063c 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.333 -server.version=1.2.305 +client.version=1.2.334 +server.version=1.2.306 diff --git a/deploy/backup/scheme/shineup.me/scripts/backup_full.sh b/deploy/backup/scheme/shineup.me/scripts/backup_full.sh index ee236052..4e2913e6 100755 --- a/deploy/backup/scheme/shineup.me/scripts/backup_full.sh +++ b/deploy/backup/scheme/shineup.me/scripts/backup_full.sh @@ -10,6 +10,32 @@ RSYNC_REMOTE_SUDO=(--rsync-path="sudo -n rsync") mkdir -p "${DEST_DIR}" +remote_exists() { + ssh "${REMOTE_HOST}" "test -e '$1'" +} + +copy_optional_dir() { + local remote_path="$1" + local local_path="$2" + if remote_exists "$remote_path"; then + rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:${remote_path}/" "${local_path}/" + else + mkdir -p "${local_path}" + echo "missing: ${remote_path}" > "${local_path}/MISSING.txt" + fi +} + +copy_optional_file() { + local remote_path="$1" + local local_path="$2" + if remote_exists "$remote_path"; then + rsync -aH "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:${remote_path}" "${local_path}" + else + mkdir -p "$(dirname "${local_path}")" + echo "missing: ${remote_path}" > "${local_path}.MISSING.txt" + fi +} + echo "[1/4] Создаю структуру бэкапа: ${DEST_DIR}" mkdir -p "${DEST_DIR}/home-player" "${DEST_DIR}/etc-system" "${DEST_DIR}/var-lib/docker-images" @@ -21,17 +47,21 @@ rsync -aH --delete \ --exclude='**/*.log' \ "${REMOTE_HOST}:/home/player/SHiNE/" "${DEST_DIR}/home-player/SHiNE/" -rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/home/player/sites/" "${DEST_DIR}/home-player/sites/" -rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/home/player/gitea/" "${DEST_DIR}/home-player/gitea/" -rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/home/player/agent-memory/" "${DEST_DIR}/home-player/agent-memory/" +copy_optional_dir "/home/player/sites" "${DEST_DIR}/home-player/sites" +copy_optional_dir "/home/player/gitea" "${DEST_DIR}/home-player/gitea" +copy_optional_dir "/home/player/agent-memory" "${DEST_DIR}/home-player/agent-memory" echo "[3/4] Копирую системные конфиги" -rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/etc/caddy/" "${DEST_DIR}/etc-system/caddy/" -rsync -aH --delete "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/var/lib/caddy/" "${DEST_DIR}/var-lib/caddy/" -rsync -aH "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/etc/turnserver.conf" "${DEST_DIR}/etc-system/turnserver.conf" -rsync -aH "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/etc/systemd/system/shine-server.service" "${DEST_DIR}/etc-system/" -rsync -aH "${RSYNC_REMOTE_SUDO[@]}" "${REMOTE_HOST}:/etc/systemd/system/agent-memory.service" "${DEST_DIR}/etc-system/" -ssh "${REMOTE_HOST}" 'sudo -n docker image save gitea/gitea:1.22.6' > "${DEST_DIR}/var-lib/docker-images/gitea_gitea_1.22.6.tar" +copy_optional_dir "/etc/caddy" "${DEST_DIR}/etc-system/caddy" +copy_optional_dir "/var/lib/caddy" "${DEST_DIR}/var-lib/caddy" +copy_optional_file "/etc/turnserver.conf" "${DEST_DIR}/etc-system/turnserver.conf" +copy_optional_file "/etc/systemd/system/shine-server.service" "${DEST_DIR}/etc-system/shine-server.service" +copy_optional_file "/etc/systemd/system/agent-memory.service" "${DEST_DIR}/etc-system/agent-memory.service" +if ssh "${REMOTE_HOST}" 'command -v docker >/dev/null 2>&1 && sudo -n docker image inspect gitea/gitea:1.22.6 >/dev/null 2>&1'; then + ssh "${REMOTE_HOST}" 'sudo -n docker image save gitea/gitea:1.22.6' > "${DEST_DIR}/var-lib/docker-images/gitea_gitea_1.22.6.tar" +else + echo "missing: docker image gitea/gitea:1.22.6" > "${DEST_DIR}/var-lib/docker-images/gitea_gitea_1.22.6.tar.MISSING.txt" +fi echo "[4/4] Создаю манифест" {