#!/usr/bin/env bash # Восстановление из архива backup.sh set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=../lib/common.sh source "${SCRIPT_DIR}/../lib/common.sh" [[ "${EUID}" -ne 0 ]] && exec sudo -E bash "${SCRIPT_DIR}/restore.sh" "$@" ARCH="${1:-}" cd "${SCRIPT_DIR}" [[ -f .env && -f "${ARCH}" ]] || { echo "Использование: ./restore.sh archive.tar.gz"; exit 1; } # shellcheck disable=SC1091 source .env read -r -p "Перезаписать ${NEXTCLOUD_INSTALL_DIR} и БД? (yes/no): " c [[ "${c}" == "yes" ]] || exit 0 RD="${SCRIPT_DIR}/backups/restore_$$" mkdir -p "${RD}" tar xzf "${ARCH}" -C "${RD}" --strip-components=1 systemctl stop apache2 run_occ "${NEXTCLOUD_INSTALL_DIR}" maintenance:mode --on 2>/dev/null || true rm -rf "${NEXTCLOUD_INSTALL_DIR}" tar xzf "${RD}/nextcloud_files.tar.gz" -C /var/www mariadb -e "DROP DATABASE IF EXISTS \`${DB_NAME}\`; CREATE DATABASE \`${DB_NAME}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" mariadb "${DB_NAME}" < "${RD}/database.sql" chown -R www-data:www-data "${NEXTCLOUD_INSTALL_DIR}" run_occ "${NEXTCLOUD_INSTALL_DIR}" maintenance:mode --off 2>/dev/null || true systemctl start apache2 rm -rf "${RD}" echo "[INFO] Восстановление завершено"