diff options
| author | mo khan <mo@mokhan.ca> | 2015-12-24 13:26:28 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2015-12-24 13:26:28 -0700 |
| commit | 316d60ae4af7f7fb2cb0d8bbbb6df9a3db257ab6 (patch) | |
| tree | f0d2bdb2c71ee6b63500215845ebe6d1f0571da4 | |
| parent | 3aa234ac3dba8a6502db7084d67c0d1b39f24522 (diff) | |
fix tabbing.
| -rwxr-xr-x | templates/pg_backup_rotated.sh.erb | 184 |
1 files changed, 92 insertions, 92 deletions
diff --git a/templates/pg_backup_rotated.sh.erb b/templates/pg_backup_rotated.sh.erb index 8534680..70dee5d 100755 --- a/templates/pg_backup_rotated.sh.erb +++ b/templates/pg_backup_rotated.sh.erb @@ -1,122 +1,122 @@ #!/bin/bash while [ $# -gt 0 ]; do - case $1 in - -c) - CONFIG_FILE_PATH="$2" - shift 2 - ;; - *) - ${ECHO} "Unknown Option \"$1\"" 1>&2 - exit 2 - ;; - esac + case $1 in + -c) + CONFIG_FILE_PATH="$2" + shift 2 + ;; + *) + ${ECHO} "Unknown Option \"$1\"" 1>&2 + exit 2 + ;; + esac done if [ -z $CONFIG_FILE_PATH ] ; then - SCRIPTPATH=$(cd ${0%/*} && pwd -P) - CONFIG_FILE_PATH="${SCRIPTPATH}/pg_backup.config" + SCRIPTPATH=$(cd ${0%/*} && pwd -P) + CONFIG_FILE_PATH="${SCRIPTPATH}/pg_backup.config" fi if [ ! -r ${CONFIG_FILE_PATH} ] ; then - echo "Could not load config file from ${CONFIG_FILE_PATH}" 1>&2 - exit 1 + echo "Could not load config file from ${CONFIG_FILE_PATH}" 1>&2 + exit 1 fi source "${CONFIG_FILE_PATH}" if [ "$BACKUP_USER" != "" -a "$(id -un)" != "$BACKUP_USER" ] ; then - echo "This script must be run as $BACKUP_USER. Exiting." 1>&2 - exit 1 + echo "This script must be run as $BACKUP_USER. Exiting." 1>&2 + exit 1 fi if [ ! $HOSTNAME ]; then - HOSTNAME="localhost" + HOSTNAME="localhost" fi; if [ ! $USERNAME ]; then - USERNAME="postgres" + USERNAME="postgres" fi; function perform_backups() { - SUFFIX=$1 - FINAL_BACKUP_DIR=$BACKUP_DIR"`date +\%Y-\%m-\%d`$SUFFIX/" - - echo "Making backup directory in $FINAL_BACKUP_DIR" - - if ! mkdir -p $FINAL_BACKUP_DIR; then - echo "Cannot create backup directory in $FINAL_BACKUP_DIR. Go and fix it!" 1>&2 - exit 1; - fi; - - for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/ } - do - SCHEMA_ONLY_CLAUSE="$SCHEMA_ONLY_CLAUSE or datname ~ '$SCHEMA_ONLY_DB'" - done - - SCHEMA_ONLY_QUERY="select datname from pg_database where false $SCHEMA_ONLY_CLAUSE order by datname;" - echo -e "\n\nPerforming schema-only backups" - echo -e "--------------------------------------------\n" - SCHEMA_ONLY_DB_LIST=`psql -h "$HOSTNAME" -U "$USERNAME" -At -c "$SCHEMA_ONLY_QUERY" postgres` - echo -e "The following databases were matched for schema-only backup:\n${SCHEMA_ONLY_DB_LIST}\n" - - for DATABASE in $SCHEMA_ONLY_DB_LIST - do - echo "Schema-only backup of $DATABASE" - - if ! pg_dump -Fp -s -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" | gzip > $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz.in_progress; then - echo "[!!ERROR!!] Failed to backup database schema of $DATABASE" 1>&2 - else - mv $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz.in_progress $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz - fi - done - - for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/ } - do - EXCLUDE_SCHEMA_ONLY_CLAUSE="$EXCLUDE_SCHEMA_ONLY_CLAUSE and datname !~ '$SCHEMA_ONLY_DB'" - done - - FULL_BACKUP_QUERY="select datname from pg_database where not datistemplate and datallowconn $EXCLUDE_SCHEMA_ONLY_CLAUSE order by datname;" - - echo -e "\n\nPerforming full backups" - echo -e "--------------------------------------------\n" - - for DATABASE in `psql -h "$HOSTNAME" -U "$USERNAME" -At -c "$FULL_BACKUP_QUERY" postgres` - do - if [ $ENABLE_PLAIN_BACKUPS = "yes" ] - then - echo "Plain backup of $DATABASE" - - if ! pg_dump -Fp -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" | gzip > $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress; then - echo "[!!ERROR!!] Failed to produce plain backup database $DATABASE" 1>&2 - else - mv $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress $FINAL_BACKUP_DIR"$DATABASE".sql.gz - fi - fi - - if [ $ENABLE_CUSTOM_BACKUPS = "yes" ] - then - echo "Custom backup of $DATABASE" - - if ! pg_dump -Fc -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" -f $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress; then - echo "[!!ERROR!!] Failed to produce custom backup database $DATABASE" - else - mv $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress $FINAL_BACKUP_DIR"$DATABASE".custom - fi - fi - done - echo -e "\nAll database backups complete!" + SUFFIX=$1 + FINAL_BACKUP_DIR=$BACKUP_DIR"`date +\%Y-\%m-\%d`$SUFFIX/" + + echo "Making backup directory in $FINAL_BACKUP_DIR" + + if ! mkdir -p $FINAL_BACKUP_DIR; then + echo "Cannot create backup directory in $FINAL_BACKUP_DIR. Go and fix it!" 1>&2 + exit 1; + fi; + + for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/ } + do + SCHEMA_ONLY_CLAUSE="$SCHEMA_ONLY_CLAUSE or datname ~ '$SCHEMA_ONLY_DB'" + done + + SCHEMA_ONLY_QUERY="select datname from pg_database where false $SCHEMA_ONLY_CLAUSE order by datname;" + echo -e "\n\nPerforming schema-only backups" + echo -e "--------------------------------------------\n" + SCHEMA_ONLY_DB_LIST=`psql -h "$HOSTNAME" -U "$USERNAME" -At -c "$SCHEMA_ONLY_QUERY" postgres` + echo -e "The following databases were matched for schema-only backup:\n${SCHEMA_ONLY_DB_LIST}\n" + + for DATABASE in $SCHEMA_ONLY_DB_LIST + do + echo "Schema-only backup of $DATABASE" + + if ! pg_dump -Fp -s -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" | gzip > $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz.in_progress; then + echo "[!!ERROR!!] Failed to backup database schema of $DATABASE" 1>&2 + else + mv $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz.in_progress $FINAL_BACKUP_DIR"$DATABASE"_SCHEMA.sql.gz + fi + done + + for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/ } + do + EXCLUDE_SCHEMA_ONLY_CLAUSE="$EXCLUDE_SCHEMA_ONLY_CLAUSE and datname !~ '$SCHEMA_ONLY_DB'" + done + + FULL_BACKUP_QUERY="select datname from pg_database where not datistemplate and datallowconn $EXCLUDE_SCHEMA_ONLY_CLAUSE order by datname;" + + echo -e "\n\nPerforming full backups" + echo -e "--------------------------------------------\n" + + for DATABASE in `psql -h "$HOSTNAME" -U "$USERNAME" -At -c "$FULL_BACKUP_QUERY" postgres` + do + if [ $ENABLE_PLAIN_BACKUPS = "yes" ] + then + echo "Plain backup of $DATABASE" + + if ! pg_dump -Fp -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" | gzip > $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress; then + echo "[!!ERROR!!] Failed to produce plain backup database $DATABASE" 1>&2 + else + mv $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress $FINAL_BACKUP_DIR"$DATABASE".sql.gz + fi + fi + + if [ $ENABLE_CUSTOM_BACKUPS = "yes" ] + then + echo "Custom backup of $DATABASE" + + if ! pg_dump -Fc -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" -f $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress; then + echo "[!!ERROR!!] Failed to produce custom backup database $DATABASE" + else + mv $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress $FINAL_BACKUP_DIR"$DATABASE".custom + fi + fi + done + echo -e "\nAll database backups complete!" } DAY_OF_MONTH=`date +%d` if [ $DAY_OF_MONTH -eq 1 ]; then - # Delete all expired monthly directories - find $BACKUP_DIR -maxdepth 1 -name "*-monthly" -exec rm -rf '{}' ';' - perform_backups "-monthly" - exit 0; + # Delete all expired monthly directories + find $BACKUP_DIR -maxdepth 1 -name "*-monthly" -exec rm -rf '{}' ';' + perform_backups "-monthly" + exit 0; fi DAY_OF_WEEK=`date +%u` #1-7 (Monday-Sunday) @@ -124,9 +124,9 @@ EXPIRED_DAYS=`expr $((($WEEKS_TO_KEEP * 7) + 1))` if [ $DAY_OF_WEEK = $DAY_OF_WEEK_TO_KEEP ]; then - find $BACKUP_DIR -maxdepth 1 -mtime +$EXPIRED_DAYS -name "*-weekly" -exec rm -rf '{}' ';' - perform_backups "-weekly" - exit 0; + find $BACKUP_DIR -maxdepth 1 -mtime +$EXPIRED_DAYS -name "*-weekly" -exec rm -rf '{}' ';' + perform_backups "-weekly" + exit 0; fi find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name "*-daily" -exec rm -rf '{}' ';' |
