Skip to content

Instantly share code, notes, and snippets.

@pikesley
Created August 23, 2016 12:58
Show Gist options
  • Save pikesley/5e05f60a1baee7d30b66f264202214ff to your computer and use it in GitHub Desktop.
Save pikesley/5e05f60a1baee7d30b66f264202214ff to your computer and use it in GitHub Desktop.
Dump Mongo to Rackspace
#!/bin/bash
ZIPPATH="mongo-`date +%Y-%m-%d`.tbz"
CONTAINER=quirkafleeg-dumps
AUTHURL=https://lon.auth.api.rackspacecloud.com/v1.1/auth
AUTHXML="<?xml version='1.0' encoding='UTF-8'?><credentials xmlns='http://docs.rackspacecloud.com/auth/api/v1.1' username='`head -1 /root/.rackspace.creds`' key='`tail -1 /root/.rackspace.creds`' />"
echo -n 'Dumping... '
/usr/bin/mongodump
echo 'done'
echo -n 'Zipping... '
/bin/tar cjf ${ZIPPATH} dump
echo 'done'
echo -n 'Getting credentials... '
DATAS=`/usr/bin/curl -s -X POST -d "${AUTHXML}" -H 'Content-Type: application/xml' -H 'Accept: application/json' ${AUTHURL}`
STORAGEURL=`echo ${DATAS} | /usr/bin/python -c "import json,sys;obj=json.load(sys.stdin);print obj['auth']['serviceCatalog']['cloudFiles'][0]['internalURL'];"`
AUTHTOKEN=`echo ${DATAS} | /usr/bin/python -c "import json,sys;obj=json.load(sys.stdin);print obj['auth']['token']['id'];"`
echo 'done'
echo -n 'Uploading... '
/usr/bin/curl -X PUT \
-T ${ZIPPATH} \
-H "Content-Type: application/x-bzip" \
-H "X-Auth-Token: ${AUTHTOKEN}" \
${STORAGEURL}/${CONTAINER}/${ZIPPATH}
echo 'done'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment