36 lines
1.1 KiB
Bash
36 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Резервная копия нативной установки
|
|
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}/backup.sh" "$@"
|
|
|
|
cd "${SCRIPT_DIR}"
|
|
[[ -f .env ]] || { echo "[ERROR] .env не найден"; exit 1; }
|
|
# shellcheck disable=SC1091
|
|
source .env
|
|
|
|
TS="$(date +%Y-%m-%d_%H-%M-%S)"
|
|
BD="${SCRIPT_DIR}/backups/backup_${TS}"
|
|
ARCH="${SCRIPT_DIR}/backups/nextcloud_native_${TS}.tar.gz"
|
|
mkdir -p "${BD}"
|
|
|
|
run_occ "${NEXTCLOUD_INSTALL_DIR}" maintenance:mode --on 2>/dev/null || true
|
|
|
|
mariadb-dump -u "${DB_USER}" -p"${DB_PASSWORD}" \
|
|
--single-transaction "${DB_NAME}" > "${BD}/database.sql"
|
|
|
|
tar czf "${BD}/nextcloud_files.tar.gz" \
|
|
-C "$(dirname "${NEXTCLOUD_INSTALL_DIR}")" "$(basename "${NEXTCLOUD_INSTALL_DIR}")"
|
|
|
|
cp .env "${BD}/install.env"
|
|
|
|
run_occ "${NEXTCLOUD_INSTALL_DIR}" maintenance:mode --off 2>/dev/null || true
|
|
|
|
tar czf "${ARCH}" -C "${SCRIPT_DIR}/backups" "backup_${TS}"
|
|
rm -rf "${BD}"
|
|
echo "[INFO] Бэкап: ${ARCH}"
|