6a9f2cb473
FIXES:
acronis-logs.sh:
- Line 278: $choice → ${choice:-0} (2 instances)
acronis-register.sh:
- Line 174: $REG_EXIT_CODE → ${REG_EXIT_CODE:-0}
acronis-uninstall.sh:
- Line 217: $remaining → ${remaining:-0}
MILESTONE ACHIEVED:
🎉 ALL HIGH-PRIORITY INTEGER COMPARISON ISSUES FIXED! 🎉
QA STATUS:
- CRITICAL issues: 0 (was 8) ✓ FIXED
- HIGH issues: 0 (was 20+) ✓ FIXED
- MEDIUM issues: 9 (pending)
- LOW issues: 11 (pending)
- Total issues: 20 (was 41 originally)
STATISTICS:
- Files fixed: 25+
- Integer comparisons fixed: 60+
- Commits in this session: 6
- All critical bash errors eliminated!
Remaining work:
- 9 MEDIUM: Hardcoded /var/cpanel paths (multi-panel support)
- 11 LOW: bc command usage + undefined color variable
232 lines
7.5 KiB
Bash
Executable File
232 lines
7.5 KiB
Bash
Executable File
#!/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:-0}" -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
|