#!/bin/bash source "${AGENT_PATH}/common.sh" source "$(dirname "${BASH_SOURCE[0]}")/_volumes.sh" _check_required_env_vars "CONTAINER_NAME" if [ -z "$1" ]; then echo "Usage: $0 " echo "Available backups:" ls -la "${CONFIG_PATH}/backups/" 2>/dev/null || echo "No backups found" exit 1 fi BACKUP_DIR="$1" if [ ! -d "$BACKUP_DIR" ]; then _die "Backup directory not found: $BACKUP_DIR" fi echo "Restoring from backup: $BACKUP_DIR" # Stop the container bash ./stop.sh || true # Restore volumes for volume in $(get_logclient_volumes); do volume_name=$(echo $volume | cut -d: -f3) backup_file="$BACKUP_DIR/${volume_name}.tar.gz" if [ -f "$backup_file" ]; then echo "Restoring volume: $volume_name" docker run --rm -v "$volume_name:/target" -v "$BACKUP_DIR:/backup:ro" alpine \ sh -c "rm -rf /target/* && tar -xzf /backup/${volume_name}.tar.gz -C /target" fi done # Restore configuration if exists if [ -d "$BACKUP_DIR/config_backup" ]; then cp -r "$BACKUP_DIR/config_backup/"* "${CONFIG_PATH}/" fi echo "Restore completed" # Start the container bash ./start.sh echo "Container restarted"