Skip to content

Instantly share code, notes, and snippets.

@yalab
Created November 17, 2011 10:24
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yalab/1372860 to your computer and use it in GitHub Desktop.
Save yalab/1372860 to your computer and use it in GitHub Desktop.
Backup scripts MongoHQ databases using heroku.
#!/bin/bash
HEROKU="/home/yalab/.rvm/gems/ruby-1.9.3-p0/bin/heroku"
BACKUP_DIR="$HOME/.backup/mongohq"
if [ ! -d $BACKUP_DIR ];then
mkdir -p $BACKUP_DIR
fi
for APP in `$HEROKU list`;do
MONGOHQ_URL=`heroku config --app $APP | grep MONGOHQ_URL | awk '{print $3}'`
if [ -z "$MONGOHQ_URL" ];then
continue
fi
URI=(`ruby -ruri -e "uri = URI.parse('$MONGOHQ_URL'); puts(uri.user, uri.password, uri.host, uri.port, uri.path.delete('/'))"`)
USER=${URI[0]}
PASS=${URI[1]}
HOST=${URI[2]}
PORT=${URI[3]}
NAME=${URI[4]}
mongodump -h ${HOST}:${PORT} -d ${NAME} -u ${USER} -p ${PASS} -o $BACKUP_DIR
tar -C $BACKUP_DIR -jcvf ${BACKUP_DIR}/${APP}_`date +%Y%m%d%H%M%S`.tar.bz2 $NAME
rm -rf ${BACKUP_DIR}/${NAME}
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment