39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
#!/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] Восстановление завершено"
|