How to schedule a MongoDb backup using cron

If you are running a single standalone MongoDb database or even a replicaSet maybe it’s interesting to have a backup. If you want to create a MongoDb backups using cron keep reading.

Schedule a MongoDb backup using cron

Localhost server

If you are looking for a quite simple way to automate MongoDb backup using cron, here is one:

* 1 * * * DATE=`date +%y/%m/%d/`; mkdir -p /mongo-backup/$DATE && mongodump --out /mongo-backup/$DATE

Notes:

  • Everyday at 01:00 am
  • Example path on 10th November 2014: /mongo-backup/14/11/10/
  • In the day folders, you will find a folder per database
  • In each database folder, you will find a JSON & BSON for each collection

Remote server

In MongoDb +3.6 you can use the connection URI:

* 1 * * * DATE=`date +%y/%m/%d/`; mkdir -p /mongo-backup/$DATE && mongodump --gzip --out /mongo-backup/$DATE --uri mongodb://user:password@ip,or,domains/?replicaSet=name&authSource=admin

In my tests I had to put --uri in the last position as the last option else all next options should be ommited.

Output example

Read more about cron or mongodump