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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions