mirror of
https://github.com/varun-r-mallya/server-scripts.git
synced 2025-12-31 20:16:25 +00:00
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# === Config ===
|
|
BORG_REPO="/mnt/data/bbackup"
|
|
RESTORE_BASE="/var/snap/nextcloud/common/restore"
|
|
TMP_DIR="/tmp/nextcloud_restore_tmp"
|
|
|
|
# === Step 1: List available Borg archives
|
|
echo "🔍 Available Nextcloud Backups:"
|
|
borg list "$BORG_REPO" | grep nextcloud-export- | nl
|
|
|
|
# === Step 2: Ask user to choose one
|
|
read -p "Enter the number of the backup to restore: " CHOICE
|
|
|
|
ARCHIVE_NAME=$(borg list "$BORG_REPO" | grep nextcloud-export- | sed -n "${CHOICE}p" | awk '{print $1}')
|
|
|
|
if [ -z "$ARCHIVE_NAME" ]; then
|
|
echo "❌ Invalid selection"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Selected archive: $ARCHIVE_NAME"
|
|
|
|
# === Step 3: Extract Borg archive
|
|
rm -rf "$TMP_DIR"
|
|
mkdir -p "$TMP_DIR"
|
|
cd "$TMP_DIR"
|
|
|
|
echo "📦 Extracting archive..."
|
|
borg extract "$BORG_REPO::$ARCHIVE_NAME"
|
|
|
|
cd ./tmp
|
|
# === Step 4: Extract tar into Snap-visible restore directory
|
|
TAR_FILE=$(ls nextcloud-backup-*.tar)
|
|
FOLDER_NAME="${TAR_FILE%.tar}"
|
|
|
|
sudo mkdir -p "$RESTORE_BASE/$FOLDER_NAME"
|
|
sudo tar -xvf "$TAR_FILE" -C "$RESTORE_BASE/$FOLDER_NAME"
|
|
|
|
# === Step 5: Run nextcloud.import
|
|
echo "🚀 Restoring Nextcloud from backup..."
|
|
sudo nextcloud.import "$RESTORE_BASE/$FOLDER_NAME"
|
|
|
|
echo "✅ Done restoring from $ARCHIVE_NAME"
|
|
|