Skip to content

Instantly share code, notes, and snippets.

@jvelo
Last active December 25, 2015 10:59
Show Gist options
  • Save jvelo/6965933 to your computer and use it in GitHub Desktop.
Save jvelo/6965933 to your computer and use it in GitHub Desktop.
#!/bin/bash
MY_DIR=`dirname $0`
. $MY_DIR/backups.conf
DAY_OF_WEEK=`date +%A | tr '[:upper:]' '[:lower:]'`
WEEK_OF_YEAR=`date +%V`
BACKUP_DIRECTORY=/home/$BACKUP_USER/backups/daily/$DAY_OF_WEEK
WEEKLY_BACKUP=/home/$BACKUP_USER/backups/weekly
WD=`pwd`
if [ ! -d "$BACKUP_DIRECTORY" ]; then
mkdir -p $BACKUP_DIRECTORY
fi
if [ ! -d "$WEEKLY_BACKUP" ]; then
mkdir -p $WEEKLY_BACKUP
fi
# Postgres
for DB in "${PG_DBS[@]}"
do
sudo -u postgres pg_dump $DB | gzip > $BACKUP_DIRECTORY/$DB.pg.sql.gz
done
if [ -n "$DATA_DIR" ]; then
cd $DATA_DIR
tar --exclude='./elasticsearch' -czf $BACKUP_DIRECTORY/data.tgz .
cd $WD
fi
if [ "$DAY_OF_WEEK" = "sunday" ]; then
# On sundays, backup the whole week in weekly backups
cd $BACKUP_DIRECTORY
tar -czf $WEEKLY_BACKUP/$WEEK_OF_YEAR.tgz .
cd $WD
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment