significant tidying to logserver
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 38s
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 38s
This commit is contained in:
37
logserver/backup.sh
Executable file
37
logserver/backup.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
source "${AGENT_PATH}/common.sh"
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/_volumes.sh"
|
||||
|
||||
_check_required_env_vars "CONTAINER_NAME"
|
||||
|
||||
echo "Backing up ${CONTAINER_NAME} ELK stack volumes..."
|
||||
echo "Note: This may take a while for large log databases"
|
||||
|
||||
# Stop the containers to ensure data consistency
|
||||
bash ./stop.sh || true
|
||||
|
||||
# Backup volumes
|
||||
BACKUP_DIR="${CONFIG_PATH}/backups/$(date +%Y%m%d_%H%M%S)"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Export volumes
|
||||
for volume in $(get_logserver_volumes); do
|
||||
volume_name=$(echo $volume | cut -d: -f3)
|
||||
echo "Backing up volume: $volume_name"
|
||||
docker run --rm -v "$volume_name:/source:ro" -v "$BACKUP_DIR:/backup" alpine \
|
||||
tar -czf "/backup/${volume_name}.tar.gz" -C /source .
|
||||
done
|
||||
|
||||
# Backup configuration
|
||||
cp -r "${CONFIG_PATH}" "$BACKUP_DIR/config_backup"
|
||||
|
||||
# Backup docker-compose.yml
|
||||
cp docker-compose.yml "$BACKUP_DIR/" 2>/dev/null || true
|
||||
|
||||
echo "Backup completed to: $BACKUP_DIR"
|
||||
echo "Size: $(du -sh $BACKUP_DIR | cut -f1)"
|
||||
|
||||
# Restart the containers
|
||||
bash ./start.sh
|
||||
|
||||
echo "ELK stack restarted"
|
Reference in New Issue
Block a user