Files
Linux-Server-Management-Too…/modules/backup/acronis-trigger-backup.sh
T
cschantz 8cdca363ab Simplify backup trigger menu - remove confusing options
Simplified flow:
1. Shows available plans from acrocmd
2. Prompts user to enter plan name/ID directly
3. Press Enter to cancel and see web console instructions
4. Then proceeds to backup type and performance selection

Removed:
- Confusing numbered options (1,2,3)
- "Run all plans" option (too dangerous)
- Redundant web console option

Now more intuitive - users just type the plan name they see.
2025-11-06 20:15:16 -05:00

193 lines
6.2 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Acronis Trigger Backup
################################################################################
# Purpose: Trigger manual backups using acrocmd
# Features:
# - List available backup plans
# - Run backup for specific plan
# - Trigger ad-hoc backup
################################################################################
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
source "$SCRIPT_DIR/lib/common-functions.sh"
source "$SCRIPT_DIR/lib/system-detect.sh"
if [ "$EUID" -ne 0 ]; then
print_error "This script must be run as root"
exit 1
fi
clear
print_banner "Trigger Manual Backup"
echo ""
# Check if acrocmd is available
if [ ! -f "/usr/sbin/acrocmd" ]; then
print_error "acrocmd command-line tool not found"
echo ""
press_enter
exit 1
fi
# List available plans
echo -e "${BOLD}Available Backup Plans${NC}"
echo ""
echo "Querying backup plans from Acronis..."
echo ""
plan_output=$(/usr/sbin/acrocmd list plans 2>&1)
if echo "$plan_output" | grep -qi "error\|failed\|no plans"; then
echo -e "${YELLOW}No backup plans found or error querying plans${NC}"
echo ""
echo "Possible reasons:"
echo " • No backup plans configured yet"
echo " • Agent not registered with Acronis Cloud"
echo " • Need to configure plans in web console first"
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
echo -e "${BOLD}To Configure Backup Plans:${NC}"
echo ""
echo "1. Log in to Acronis web console"
echo "2. Navigate to: Devices → Select this server"
echo "3. Click 'Add protection plan'"
echo "4. Configure backup settings and schedule"
echo "5. Return here to trigger backups"
echo ""
press_enter
exit 0
fi
echo "$plan_output"
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
echo -e "${BOLD}Select a Plan to Backup:${NC}"
echo ""
echo "Enter the plan name or ID from the list above,"
echo "or press Enter to cancel and use web console instead."
echo ""
echo -n "Plan name/ID: "
read -r plan_id
if [ -z "$plan_id" ]; then
echo ""
echo -e "${BOLD}Use Web Console Instead${NC}"
echo ""
echo "To trigger backup via web console:"
echo ""
echo "1. Log in to Acronis web console"
# Try to get cloud URL
if [ -f "/etc/Acronis/Global.config" ]; then
cloud_url=$(grep -oP 'CloudUrl[>=\"].*?https://[^\"<]+' /etc/Acronis/Global.config 2>/dev/null | grep -oP 'https://[^\"<]+' | head -1)
if [ -n "$cloud_url" ]; then
echo " ${cloud_url}"
fi
fi
echo ""
echo "2. Navigate to: Devices → This server"
echo "3. Click 'Back up now' button"
echo "4. Monitor progress in real-time"
echo ""
press_enter
exit 0
fi
# User selected a plan, proceed with backup type selection
echo ""
echo -e "${BOLD}Backup Type Selection${NC}"
echo ""
echo "Select backup type:"
echo " 1) Auto (use plan's configured type)"
echo " 2) Full backup"
echo " 3) Incremental backup"
echo " 4) Differential backup"
echo ""
echo -n "Select type [1]: "
read -r backup_type_choice
backup_type_choice="${backup_type_choice:-1}"
BACKUP_FLAGS=""
case "$backup_type_choice" in
2)
BACKUP_FLAGS="--backuptype=full"
echo " → Full backup selected"
;;
3)
BACKUP_FLAGS="--backuptype=incremental"
echo " → Incremental backup selected (faster, stores only changes)"
;;
4)
BACKUP_FLAGS="--backuptype=differential"
echo " → Differential backup selected (changes since last full)"
;;
*)
echo " → Using plan's default backup type"
;;
esac
echo ""
echo -e "${BOLD}Performance Options${NC}"
echo ""
echo -n "Enable performance optimizations? (y/n) [n]: "
read -r opt_choice
if [ "$opt_choice" = "y" ] || [ "$opt_choice" = "Y" ]; then
echo ""
echo "Available optimizations:"
echo " 1) Lower compression (faster backup, larger size)"
echo " 2) High priority (use more system resources)"
echo " 3) Both"
echo ""
echo -n "Select [3]: "
read -r perf_choice
perf_choice="${perf_choice:-3}"
case "$perf_choice" in
1)
BACKUP_FLAGS="$BACKUP_FLAGS --compression=normal"
echo " → Lower compression enabled"
;;
2)
BACKUP_FLAGS="$BACKUP_FLAGS --priority=high"
echo " → High priority enabled"
;;
3)
BACKUP_FLAGS="$BACKUP_FLAGS --compression=normal --priority=high"
echo " → Lower compression + high priority enabled"
;;
esac
fi
echo ""
echo -e "${BOLD}Starting Backup...${NC}"
echo ""
echo "Plan: $plan_id"
[ -n "$BACKUP_FLAGS" ] && echo "Options: $BACKUP_FLAGS"
echo ""
# Try to run backup
if /usr/sbin/acrocmd backup run --plan "$plan_id" $BACKUP_FLAGS 2>&1; then
echo ""
print_success "Backup initiated successfully"
echo ""
echo "Monitor progress with 'Check Backup Status'"
else
echo ""
print_error "Failed to start backup"
echo ""
echo "Check that:"
echo " • Plan ID/name is correct"
echo " • Agent is online and registered"
echo " • No conflicting backups running"
fi
echo ""
press_enter