Skip to content

Instantly share code, notes, and snippets.

@itspoma
Created November 5, 2019 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itspoma/c1db887cbf026d86995b9e1df9ba549d to your computer and use it in GitHub Desktop.
Save itspoma/c1db887cbf026d86995b9e1df9ba549d to your computer and use it in GitHub Desktop.

Database backup

Create webook on Slack

https://ralabs-team.slack.com/apps/A0F7XDUAZ-incoming-webhooks?next_id=0

Create config file

$ sudo touch /mgob/config/main.yaml $ sudo vi /mgob/config/main.yaml

scheduler:
  # run every day at 1am
  cron: "0 1 * * *"
  # number of backups to keep locally
  retention: 20
  # backup operation timeout in minutes
  timeout: 60
target:
  host: "app-mongo"
  port: 27017
  database: "app"
  username: ""
  password: ""
  params: ""
# S3 upload (optional)
s3:
  # url: "https://s3.amazonaws.com/app-backup"
  url: "https://s3.amazonaws.com"
  bucket: "app-backup"
  accessKey: "AKIAXXXIJ2H33GFQQXXX"
  secretKey: "fxARf4lGOxxxxXXxI8Dy/LgFh3jwxhLUFINloxxX"
  # For Minio and AWS use S3v4 for GCP use S3v2
  api: "S3v4"
# Slack notifications (optional)
slack:
  url: https://hooks.slack.com/services/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
  channel: p-project-feed
  username: mgob
  warnOnly: false

Run backup script

docker run -dp 8090:8090 --name mgob \
    -v "/mgob/config:/config" \
    -v "/mgob/storage:/storage" \
    -v "/mgob/tmp:/tmp" \
    -v "/mgob/data:/data" \
    --link sviyp-mongo:sviyp-mongo \
    stefanprodan/mgob \
    -LogLevel=info

Restore backup

Browse http://11.22.33.44:8090/storage/

$ mkdir -p ~/data/backup $ curl -o ~/data/backup/mongo-db-backup.gz http://localhost:8090/storage/main/main-1568122020.gz $ docker exec -ti $(docker ps -q -f name=sviyp-mongo) mongorestore --gzip --archive=/data/db/backup/mongo-db-backup.gz --drop

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment