Created
January 5, 2011 14:29
-
-
Save philippbosch/766388 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Usage: ./backup.sh [project [project] ...] | |
# | |
# You need to create a config file ~/.pbbackup which needs to look like this: | |
# AWS_ACCESS_KEY_ID=your_amazon_webservice_access_key | |
# AWS_SECRET_ACCESS_KEY=your_amazon_webservice_secret_access_key | |
# PASSPHRASE=the_passphrase_that_should_be_used_for_gpg_encryption | |
# BUCKET_NAME=the_name_of_the_s3_bucket_to_be_used | |
CONFIG_FILE=~/.pbbackup | |
PROJECTS_DIR=./projects | |
PROJECTS=`find ${PROJECTS_DIR} -mindepth 1 -maxdepth 1 -type d -printf "%f "` | |
SYSTEM_USER=`whoami` | |
HOST_NAME=`hostname` | |
if [[ ! -r ${CONFIG_FILE} ]] | |
then | |
echo Config file ${CONFIG_FILE} does not exist or is not readable. | |
exit 99 | |
fi | |
. ${CONFIG_FILE} | |
if [[ -z "$AWS_ACCESS_KEY_ID" ]] ; then echo AWS_ACCESS_KEY_ID is not set in config file. ; exit 99 ; fi | |
if [[ -z "$AWS_SECRET_ACCESS_KEY" ]] ; then echo AWS_SECRET_ACCESS_KEY is not set in config file. ; exit 99 ; fi | |
if [[ -z "$PASSPHRASE" ]] ; then echo PASSPHRASE is not set in config file. ; exit 99 ; fi | |
if [[ -z "$BUCKET_NAME" ]] ; then echo BUCKET_NAME is not set in config file. ; exit 99 ; fi | |
export AWS_ACCESS_KEY_ID | |
export AWS_SECRET_ACCESS_KEY | |
export PASSPHRASE | |
export BUCKET_NAME | |
if [[ -n $@ ]] | |
then | |
PROJECTS=$@ | |
fi | |
for PROJECT in ${PROJECTS} | |
do | |
if [[ -e ${PROJECTS_DIR}/${PROJECT}/.nobackup ]] | |
then | |
continue | |
fi | |
SQL_FILENAME="${PROJECTS_DIR}/${PROJECT}/db-${PROJECT}.sql" | |
mysqldump -u${SYSTEM_USER} ${SYSTEM_USER}\_${PROJECT} > ${SQL_FILENAME} | |
duplicity --no-print-statistics --full-if-older-than 1M ${PROJECTS_DIR}/${PROJECT} s3+http://${BUCKET_NAME}/${HOST_NAME}/${SYSTEM_USER}/${PROJECT}/ > /dev/null | |
rm -f ${SQL_FILENAME} | |
done | |
export -n AWS_ACCESS_KEY_ID | |
export -n AWS_SECRET_ACCESS_KEY | |
export -n PASSPHRASE | |
export -n BUCKET_NAME |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment