Skip to content

Database backup #290

@erichartline

Description

@erichartline

Here's a shell script I previously wrote to back up an ArangoDB database.

adb-backup.sh

#!/bin/bash

# exit script if any statement returns non-true return value
set -e

DATE=$(date +%F)
DATABASE_NAME=auth
BACKUP_DIR_NAME="arangodb_${DATABASE_NAME}_`date +"%m_%d_%Y"`"
BACKUP_FILE="$BACKUP_DIR_NAME.tar.gz"
ENDPOINT="ssl://$ARANGODB_SERVICE_HOST"
# Clean up
rm -rf /tmp/arangodb_*
# Export the data from arangodb
arangodump \
  --output-directory /tmp/$BACKUP_DIR_NAME \
  --server.endpoint $ENDPOINT \
  --server.database $DATABASE_NAME \
  --server.username george \
  --server.password costanza \
  --include-system-collections true

# Create tar file
tar -zcf /tmp/$BACKUP_FILE /tmp/$BACKUP_DIR_NAME

# Make bucket for backup
# mc mb ericdev/arangodb
# Copy to storage
mc cp /tmp/$BACKUP_FILE "ericdev/arangodb/${BACKUP_DIR_NAME}/${BACKUP_FILE}"

# Clean up
rm -rf /tmp/arangodb_*

echo "ArangoDB backup completed"
exit 0

And the corresponding Dockerfile:

FROM arangodb/arangodb:3.6.4
RUN apt update && apt install wget
RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc \
    && chmod +x mc
ENV DATABASE_NAME annotation
ENV ARANGO_SERVICE_HOST localhost
ENV ARANGO_SERVICE_PORT 8529
ENV DATABASE_USERNAME root
ADD adb-backup.sh /adb-backup.sh
ENTRYPOINT ["sh", "/adb-backup.sh"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions