Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- DB_NAME=$1
- MAX_BACKUPS=${MAX_BACKUPS:-30}
- DB_USER=${DB_USER:-"postgres"}
- DB_HOST=${DB_HOST:-""}
- PGPASSWORD=$DB_PASSWORD
- BACKUP_DIR=${BACKUP_DIR:-"backups"}
- BACKUP_FILE=$BACKUP_DIR/$DB_NAME'_'$(date +%F_%T).pgdump
- if [[ ! -d $BACKUP_DIR ]]; then
- echo "Creating backup dir"
- mkdir -p $BACKUP_DIR
- fi
- echo "Creating backup of $DB_NAME"
- pg_dump\
- --format=custom\
- --host=$DB_HOST\
- --username=$DB_USER\
- --file=$BACKUP_FILE\
- --dbname=$DB_NAME
- echo "Removing old backups"
- offset=$(($MAX_BACKUPS + 1)) # tail needs N+1 offset
- old_backups=$(find "$BACKUP_DIR" -type f -name "$DB_NAME"_* | sort -r | tail -n +$offset)
- if [[ $old_backups != "" ]]; then
- echo $old_backups | xargs rm
- fi
- echo "Done"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement