Skip to content

Instantly share code, notes, and snippets.

@phred
Created January 26, 2011 16:48
Show Gist options
  • Save phred/796984 to your computer and use it in GitHub Desktop.
Save phred/796984 to your computer and use it in GitHub Desktop.
Quick n' dirty shell script to back up a Cloudant database to a new, uniquely-named Cloudant DB.
#!/bin/sh
CLOUDANT_USER="myusername"
CLOUDANT_PASS="mypassword"
CLOUDANT_DB="mydb"
DATE=`date +"%Y-%m-%d\$%H.%M"`
BACKUP_NAME="${CLOUDANT_DB}_backup_${DATE}"
echo "Creating database named ${BACKUP_NAME}"
# First, create the database
curl -X PUT "http://${CLOUDANT_USER}:${CLOUDANT_PASS}@${CLOUDANT_USER}.cloudant.com/${BACKUP_NAME}" -g
echo "Starting replication..."
# Next, tell the replicator to copy the source database to the new backup database
curl -X POST "http://${CLOUDANT_USER}:${CLOUDANT_PASS}@${CLOUDANT_USER}.cloudant.com/_replicate" -d '{"source":"http://'${CLOUDANT_USER}':'${CLOUDANT_PASS}'@${CLOUDANT_USER}.cloudant.com/'${CLOUDANT_DB}'","target":"http://'${CLOUDANT_USER}':'${CLOUDANT_PASS}'@'${CLOUDANT_USER}'.cloudant.com/'${BACKUP_NAME}'"}' -H "Content-type: application/json" -g
echo "All done."
@elliots
Copy link

elliots commented Aug 24, 2011

Nice one, cheers!

@phred
Copy link
Author

phred commented Aug 24, 2011

Thanks! Just made a quick edit to fix an issue I ran into today.

@erichocean
Copy link

Hmm, I wonder what this is used for... ;)

@jayniz
Copy link

jayniz commented Oct 9, 2013

Here's a gem to do this easily with ruby: cloudant-backup

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