Implement Acronis Cyber Protect agent management scripts

Created 11 comprehensive scripts for Acronis backup management:

Installation & Setup:
- acronis-install.sh: Download/install agent with multiple modes
  * Interactive, unattended, with/without registration
  * Supports token-based registration during install
  * Auto-service startup and verification
- acronis-register.sh: Register agent with Acronis Cloud
  * Validates service URL and token
  * Shows current registration status
  * Safe re-registration with confirmation
- acronis-configure.sh: Guidance for backup plan configuration
  * Web console walkthrough
  * Common backup plan examples

Backup Operations:
- acronis-manual-backup.sh: Manual backup creation guide
  * Web console and CLI methods
  * Ready for full CLI implementation
- acronis-status.sh: View backup status from logs
  * Recent backup activity
  * acrocmd integration ready
- acronis-list-backups.sh: List available backup archives
  * acrocmd integration for archive listing
- acronis-restore.sh: Restore from backup guide
  * Multiple restore methods explained
  * Safety warnings and best practices

Management:
- acronis-agent-status.sh: Comprehensive service status
  * All 4 services (aakore, mms, schedule, active-protection)
  * Registration status, network ports, storage
  * Quick actions: start/stop/restart/logs/version
- acronis-update.sh: Agent update management
  * Auto and manual update methods
  * Version checking
- acronis-logs.sh: Advanced log viewer
  * View, tail, search logs
  * Error filtering with color coding
  * Log archival for old logs
- acronis-uninstall.sh: Safe agent removal
  * Stops services, unregisters, removes packages
  * Optional data retention
  * Comprehensive cleanup

All scripts based on documented Acronis commands with proper error
handling, status validation, and user-friendly interfaces.
This commit is contained in:
cschantz
2025-11-05 21:30:19 -05:00
parent 1f21a596b5
commit e7eaabfcc5
11 changed files with 1621 additions and 0 deletions
+231
View File
@@ -0,0 +1,231 @@
#!/bin/bash
################################################################################
# Acronis Agent Registration
################################################################################
# Purpose: Register Acronis agent with Acronis Cloud
# Command: /usr/lib/Acronis/RegisterAgentTool/RegisterAgent
# Flags:
# -o register - Operation: register
# -t cloud - Type: cloud-based
# -a <url> - Service URL
# --token <token> - Registration token
################################################################################
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
source "$SCRIPT_DIR/lib/common-functions.sh"
source "$SCRIPT_DIR/lib/system-detect.sh"
# Require root
if [ "$EUID" -ne 0 ]; then
print_error "This script must be run as root"
exit 1
fi
print_banner "Acronis Agent Registration"
# Check if agent is installed
if [ ! -f "/usr/lib/Acronis/RegisterAgentTool/RegisterAgent" ]; then
echo ""
print_error "Acronis agent is not installed"
echo ""
echo "Please install the agent first:"
echo " 1. Return to Acronis Management menu"
echo " 2. Select 'Install Acronis Agent'"
echo ""
press_enter
exit 1
fi
echo ""
# Check current registration status
echo -e "${BOLD}Current Registration Status:${NC}"
echo ""
if [ -f "/etc/Acronis/Global.config" ]; then
if grep -q "CloudUrl" "/etc/Acronis/Global.config" 2>/dev/null; then
echo -e " ${GREEN}${NC} Agent is currently registered"
# Extract current cloud URL
current_url=$(grep -oP 'CloudUrl[>="].*?https://[^"<]+' /etc/Acronis/Global.config 2>/dev/null | grep -oP 'https://[^"<]+' | head -1)
if [ -n "$current_url" ]; then
echo -e " Current URL: ${current_url}"
fi
echo ""
echo -e "${YELLOW}⚠ Agent is already registered${NC}"
echo ""
echo "Do you want to:"
echo " 1) Keep current registration"
echo " 2) Re-register (will overwrite current registration)"
echo ""
echo -n "Select [1]: "
read -r choice
choice="${choice:-1}"
if [ "$choice" = "1" ]; then
echo ""
echo "Keeping current registration"
press_enter
exit 0
fi
echo ""
echo "Proceeding with re-registration..."
else
echo -e " ${YELLOW}${NC} Agent is not registered"
fi
else
echo -e " ${YELLOW}${NC} No configuration found"
fi
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
echo -e "${BOLD}Agent Registration${NC}"
echo ""
echo "You'll need:"
echo " • Acronis Cloud service URL (e.g., us5-cloud.acronis.com)"
echo " • Registration token from Acronis web console"
echo ""
echo "To get a registration token:"
echo " 1. Log in to Acronis web console"
echo " 2. Go to Settings → Registration tokens"
echo " 3. Create a new token or copy existing one"
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
# Get service URL
echo -n "Enter Acronis Cloud service URL [us5-cloud.acronis.com]: "
read -r service_url
service_url="${service_url:-us5-cloud.acronis.com}"
# Validate URL format
if [[ ! "$service_url" =~ ^[a-z0-9.-]+\.acronis\.com$ ]]; then
print_error "Invalid service URL format"
echo ""
echo "Expected format: region-cloud.acronis.com"
echo "Examples:"
echo " • us5-cloud.acronis.com"
echo " • eu2-cloud.acronis.com"
echo " • ap1-cloud.acronis.com"
echo ""
press_enter
exit 1
fi
# Get registration token
echo ""
echo -n "Enter registration token: "
read -r reg_token
if [ -z "$reg_token" ]; then
print_error "Registration token is required"
press_enter
exit 1
fi
# Confirm registration
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
echo -e "${BOLD}Registration Summary:${NC}"
echo ""
echo " Service URL: https://${service_url}"
echo " Token: ${reg_token:0:8}...${reg_token: -4}"
echo ""
echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}"
echo ""
echo -n "Proceed with registration? (yes/no): "
read -r confirm
if [ "$confirm" != "yes" ]; then
echo ""
print_error "Registration cancelled"
press_enter
exit 0
fi
echo ""
echo -e "${BOLD}Registering Agent...${NC}"
echo ""
# Run registration command
REGISTER_CMD="/usr/lib/Acronis/RegisterAgentTool/RegisterAgent"
REGISTER_ARGS="-o register -t cloud -a https://${service_url} --token ${reg_token}"
echo "→ Contacting Acronis Cloud..."
echo ""
echo -e "${DIM}──────────────────────────────────────────────────────────────${NC}"
# Execute registration
if $REGISTER_CMD $REGISTER_ARGS; then
REG_EXIT_CODE=$?
else
REG_EXIT_CODE=$?
fi
echo -e "${DIM}──────────────────────────────────────────────────────────────${NC}"
echo ""
# Check result
if [ $REG_EXIT_CODE -eq 0 ]; then
print_success "Registration successful!"
echo ""
# Restart services to apply registration
echo "→ Restarting Acronis services..."
systemctl restart acronis_mms
systemctl restart aakore
sleep 2
if systemctl is-active --quiet acronis_mms; then
print_success "Services restarted successfully"
echo ""
echo -e "${BOLD}Agent Registered Successfully!${NC}"
echo ""
echo "Next steps:"
echo " 1. Log in to Acronis web console:"
echo " → https://${service_url}"
echo ""
echo " 2. Find this agent in the device list"
echo " → Navigate to: Devices → All devices"
echo ""
echo " 3. Assign backup plans to this agent"
echo " → Select device → Protection → Add plan"
echo ""
echo " 4. Check agent status from this toolkit"
echo " → Select 'Check Agent Status' from Acronis menu"
echo ""
else
print_error "Services failed to restart"
echo ""
echo "Registration may have succeeded but services need attention."
echo "Check logs: tail -f /var/lib/Acronis/BackupAndRecovery/MMS/mms.0.log"
echo ""
fi
else
print_error "Registration failed with exit code $REG_EXIT_CODE"
echo ""
echo "Common issues:"
echo " • Invalid registration token"
echo " • Incorrect service URL"
echo " • Network connectivity issues"
echo " • Firewall blocking connection to Acronis Cloud"
echo " • Token already used or expired"
echo ""
echo "Troubleshooting:"
echo " 1. Verify token in Acronis web console"
echo " 2. Check network connectivity:"
echo " curl -I https://${service_url}"
echo ""
echo " 3. Check agent logs:"
echo " tail -f /var/lib/Acronis/BackupAndRecovery/MMS/mms.0.log"
echo ""
fi
press_enter